83 class CloverGrassGrazed1;
84 class CloverGrassGrazed2;
86 class FieldPeasSilage;
92 class OBarleyPeaCloverGrass;
94 class OCloverGrassGrazed1;
95 class OCloverGrassGrazed2;
96 class OCloverGrassSilage1;
98 class OFieldPeasSilage;
99 class OFirstYearDanger;
105 class OPermanentGrassGrazed;
107 class OSBarleySilage;
111 class OSpringBarleyExt;
112 class OSpringBarleyPigs;
114 class OWinterBarleyExt;
117 class OWinterWheatUndersown;
118 class OWinterWheatUndersownExt;
119 class PermanentGrassGrazed;
120 class PermanentGrassLowYield;
121 class PermanentGrassTussocky;
122 class PermanentSetAside;
124 class PotatoesIndustry;
129 class SpringBarleySpr;
130 class SpringBarleyPTreatment;
131 class SpringBarleySKManagement;
132 class SpringBarleyCloverGrass;
133 class SpringBarleySeed;
134 class SpringBarleySilage;
143 class WWheatPControl;
144 class WWheatPTreatment;
145 class WWheatPToxicControl;
146 class AgroChemIndustryCereal;
147 class WinterWheatStrigling;
148 class WinterWheatStriglingSingle;
149 class WinterWheatStriglingCulm;
150 class SpringBarleyCloverGrassStrigling;
151 class SpringBarleyStrigling;
152 class SpringBarleyStriglingCulm;
153 class SpringBarleyStriglingSingle;
154 class MaizeStrigling;
155 class WinterRapeStrigling;
156 class WinterRyeStrigling;
157 class WinterBarleyStrigling;
158 class FieldPeasStrigling;
159 class SpringBarleyPeaCloverGrassStrigling;
160 class YoungForestCrop;
163 class NorwegianPotatoes;
165 class NorwegianSpringBarley;
169 class PLWinterBarley;
170 class PLWinterTriticale;
173 class PLSpringBarley;
178 class PLFodderLucerne1;
179 class PLFodderLucerne2;
181 class PLSpringBarleySpr;
182 class PLWinterWheatLate;
190 class NLSpringBarley;
194 class NLGrassGrazed1;
195 class NLGrassGrazed1Spring;
196 class NLGrassGrazed2;
197 class NLGrassGrazedLast;
198 class NLPermanentGrassGrazed;
200 class NLCarrotsSpring;
202 class NLPotatoesSpring;
203 class NLSpringBarleySpring;
204 class NLCabbageSpring;
205 class NLCatchPeaCrop;
207 class DummyCropPestTesting;
475 bool a_lock,
int a_start,
bool a_first_year,
551 void SimpleEvent(
long a_date,
int a_todo,
bool a_lock);
635 if(a_value==
"yes" || a_value==
"YES" || a_value==
"Yes" || a_value==
"1"){
m_fixed[i]=
true;}
640 if(a_value==
"yes" || a_value==
"YES" || a_value==
"Yes" || a_value==
"1"){
m_fodder[i]=
true;}
780 virtual ~Farm(
void );
805 for (
int i = 0; i <
m_fields.size(); i++)
807 int openness =
m_fields[i]->GetOpenness();
808 if (openness > op) op = openness;
814 virtual bool SleepAllDay(
LE *a_field,
double a_user,
int a_days );
815 virtual bool AutumnPlough(
LE *a_field,
double a_user,
int a_days );
818 virtual bool AutumnHarrow(
LE *a_field,
double a_user,
int a_days );
819 virtual bool AutumnRoll(
LE *a_field,
double a_user,
int a_days );
822 virtual bool AutumnSow(
LE *a_field,
double a_user,
int a_days );
823 virtual bool WinterPlough(
LE *a_field,
double a_user,
int a_days );
824 virtual bool DeepPlough(
LE *a_field,
double a_user,
int a_days );
825 virtual bool SpringPlough(
LE *a_field,
double a_user,
int a_days );
826 virtual bool SpringHarrow(
LE *a_field,
double a_user,
int a_days );
827 virtual bool SpringRoll(
LE *a_field,
double a_user,
int a_days );
828 virtual bool SpringSow(
LE *a_field,
double a_user,
int a_days );
836 virtual bool Molluscicide(
LE *a_field,
double a_user,
int a_days );
838 virtual bool Strigling(
LE *a_field,
double a_user,
int a_days );
839 virtual bool StriglingSow(
LE *a_field,
double a_user,
int a_days );
841 virtual bool HillingUp(
LE *a_field,
double a_user,
int a_days );
842 virtual bool Water(
LE *a_field,
double a_user,
int a_days );
843 virtual bool Swathing(
LE *a_field,
double a_user,
int a_days );
844 virtual bool Harvest(
LE *a_field,
double a_user,
int a_days);
845 virtual bool HarvestLong(
LE *a_field,
double a_user,
int a_days);
846 virtual bool CattleOut(
LE *a_field,
double a_user,
int a_days);
848 virtual bool CattleIsOut(
LE *a_field,
double a_user,
int a_days,
int a_max );
849 virtual bool CattleIsOutLow(
LE *a_field,
double a_user,
int a_days,
int a_max );
850 virtual bool PigsOut(
LE *a_field,
double a_user,
int a_days );
851 virtual bool PigsAreOut(
LE *a_field,
double a_user,
int a_days );
853 virtual bool CutToHay(
LE *a_field,
double a_user,
int a_days );
854 virtual bool CutWeeds(
LE *a_field,
double a_user,
int a_days );
855 virtual bool CutToSilage(
LE *a_field,
double a_user,
int a_days );
856 virtual bool CutOrch(
LE *a_field,
double a_user,
int a_days );
858 virtual bool HayTurning(
LE *a_field,
double a_user,
int a_days );
859 virtual bool HayBailing(
LE *a_field,
double a_user,
int a_days );
862 virtual bool FP_NPKS(
LE *a_field,
double a_user,
int a_days );
863 virtual bool FP_NPK(
LE *a_field,
double a_user,
int a_days );
864 virtual bool FP_PK(
LE *a_field,
double a_user,
int a_days );
865 virtual bool FP_LiquidNH3(
LE *a_field,
double a_user,
int a_days );
866 virtual bool FP_Slurry(
LE *a_field,
double a_user,
int a_days );
869 virtual bool FP_Manure(
LE *a_field,
double a_user,
int a_days );
871 virtual bool FP_Sludge(
LE *a_field,
double a_user,
int a_days );
872 virtual bool FP_RSM(
LE *a_field,
double a_user,
int a_days);
873 virtual bool FP_Calcium(
LE *a_field,
double a_user,
int a_days);
874 virtual bool FA_NPKS(
LE *a_field,
double a_user,
int a_days);
875 virtual bool FA_NPK(
LE *a_field,
double a_user,
int a_days );
876 virtual bool FA_PK(
LE *a_field,
double a_user,
int a_days );
877 virtual bool FA_Slurry(
LE *a_field,
double a_user,
int a_days );
880 virtual bool FA_Manure(
LE *a_field,
double a_user,
int a_days );
882 virtual bool FA_Sludge(
LE *a_field,
double a_user,
int a_days );
883 virtual bool FA_RSM(
LE *a_field,
double a_user,
int a_days);
884 virtual bool FA_Calcium(
LE *a_field,
double a_user,
int a_days);
885 virtual bool Biocide(
LE *a_field,
double a_user,
int a_days);
886 virtual bool BedForming(
LE *a_field,
double a_user,
int a_days);
890 virtual bool BulbHarvest(
LE *a_field,
double a_user,
int a_days);
892 virtual bool StrawRemoval(
LE *a_field,
double a_user,
int a_days);
896 LE *a_field,
int a_todo,
long a_num,
897 bool a_lock,
int a_start,
899 bool DoIt(
double a_probability);
910 int ind = a_index - 1;
911 if (ind < 0) ind = (int)
m_rotation.size() - 1;
918 int ind = a_index + 1;
1716 void AddField(
int a_OwnerIndex,
LE* a_newland,
int a_Owner);
1730 return (
GetFarmPtr(a_farmref)->GetTotalArea());
1745 return (
GetFarmPtr(a_farmref)->GetNoFields());
1750 return (
GetFarmPtr(a_farmref)->GetValidCoords());
1756 return (
GetFarmPtr(a_farmref)->GetNoOpenFields(a_openness));
1762 return (
GetFarmPtr(a_farmref)->GetAreaOpenFields(a_openness));
1767 for (
unsigned int i = 0; i <
m_farms.size( ); i++) {
1768 if (a_owner ==
m_farms[ i ]->GetFarmNumber( )) {
1772 g_msg->
Warn(
"FarmManager::GetFarmPtr - missing farm ref", a_owner );
1785 bool InIllegalList(
int a_farm_ref, vector<int> * a_farmlist );
1811 for (
unsigned int i = 0; i <
m_farms.size(); i++)
1813 if (a_farmref ==
m_farms[i]->GetFarmNumber())
1815 return m_farms[i]->GetCentroids();
1818 g_msg->
Warn(
"FarmManager::GetFarmCentroid - missing farm ref", a_farmref);
1890 for (
int i = 0; i < (int)
m_farms.size(); i++)
1897 g_msg->
Warn(
"FarmManager::GetRenumberedFarmRef(int a_farmref) Farm reference number not found in m_farmmapping_lookup ", a_farmref );
2062 bool Harvest(
LE *a_field,
double a_user,
int a_days );
2084 void Init(ofstream * ap_output_file);
2348 void sortCrops(vector<CropSort> &cropsToSort,
string sortingKey);
2352 virtual void increaseCrops(vector<CropSort>cropsToIncrease,
double &howMuchToIncrease);
2354 virtual void decreaseCrops(vector<CropSort>cropsToDecrease,
double &howMuchToDecrease);
2424 virtual void increaseCrops(vector<CropSort>cropsToIncrease,
double &howMuchToIncrease);
2426 virtual void decreaseCrops(vector<CropSort>cropsToDecrease,
double &howMuchToDecrease);
int random(int a_range)
Definition: ALMaSS_CmdLine.cpp:142
A simple class defining an x,y coordinate set.
Definition: ALMaSS_Setup.h:53
int m_y
Definition: ALMaSS_Setup.h:56
int m_x
Definition: ALMaSS_Setup.h:55
Inbuilt special purpose farm type.
Definition: farm.h:1215
AgroChemIndustryCerealFarm1(FarmManager *a_manager)
Definition: farm.cpp:2097
Inbuilt special purpose farm type.
Definition: farm.h:1224
AgroChemIndustryCerealFarm2(FarmManager *a_manager)
Definition: farm.cpp:2114
Inbuilt special purpose farm type.
Definition: farm.h:1233
AgroChemIndustryCerealFarm3(FarmManager *a_manager)
Definition: farm.cpp:2130
Subclass of the OptimisingFarm. Either pig or cattle farm.
Definition: farm.h:2375
virtual void checkWinterRotation1()
Animal farm version of the OptimisingFarm::checkWinterRotation1() function (accounts for fodder chang...
Definition: farm.cpp:6636
double m_fodderToProduceBefore
Fodder that has to be produced to fulfill the min. fodder production restriction at the beginning of ...
Definition: farm.h:2395
virtual void decreaseCrops(vector< CropSort >cropsToDecrease, double &howMuchToDecrease)
Decreases area of cropsToDecrease by howMuchToDecrease.
Definition: farm.cpp:7931
double m_totalFodderToProduce
Fodder that has to be produced by a farm to fulfill the min. fodder production restriction....
Definition: farm.h:2391
void determineMinFodder(int a_foobar)
Covers the min. required fodder production for animal farms.
Definition: farm.cpp:7541
void createFodderCrops(int a_foobar)
Creates a list of pointers to all fodder crops.
Definition: farm.cpp:5596
void correctFodderDemand(int a_foobar)
Determines how much fodder is produced from fixed crops and min. areas of variable crops.
Definition: farm.cpp:7488
virtual void increaseCrops(vector< CropSort >cropsToIncrease, double &howMuchToIncrease)
Increases area of cropsToIncrease by howMuchToIncrease.
Definition: farm.cpp:7874
bool cash_crops_allowed
Sets to true if cash crops are allowed. True by default.
Definition: farm.h:2397
void determineFodderAreas(int a_foobar)
Determines areas of fodder crops and corrects areas of non-fodder crops.
Definition: farm.cpp:7619
bool m_fakeCropTest
Set to true if the fake crop is present after determineAreas function.
Definition: farm.h:2384
CropOptimised * m_fakeCrop
Crop used to fill up area of a farm up to 100% in case its non-fodder crops do not sum to 100% in det...
Definition: farm.h:2378
void findFodderCropSavings()
Determines the savings resulting from growing a fodder crop relative to purchasing fodder.
virtual ~AnimalFarm()
Definition: farm.h:2378
vector< CropSort > m_fodderCrops
List of pointers to variable (non-fixed) fodder crops.
Definition: farm.h:2386
virtual void createCropsLists(int a_foobar)
Creates lists of crops.
Definition: farm.cpp:5574
AnimalFarm(FarmManager *a_myfarmmanager, int a_No)
Definition: farm.cpp:5270
virtual void checkWinterCrops()
Animal farm version of the checkWinterCrops() function (accounts for fodder changes).
Definition: farm.cpp:6932
virtual void determineAreas(int a_foobar)
Determines areas of variable crops.
Definition: farm.cpp:6373
double m_fodderToProduce
Fodder that has to be produced to fulfill the min. fodder production restriction at the end of a year...
Definition: farm.h:2393
Inbuilt special purpose farm type.
Definition: farm.h:1205
ConvMarginalJord(FarmManager *a_manager)
Definition: farm.cpp:2083
Inbuilt farm type.
Definition: farm.h:1099
ConventionalCattle(FarmManager *a_manager)
Definition: farm.cpp:1982
Inbuilt farm type.
Definition: farm.h:1111
ConventionalPig(FarmManager *a_manager)
Definition: farm.cpp:2000
Inbuilt farm type.
Definition: farm.h:1123
virtual void MakeStockFarmer(void)
Definition: farm.h:1126
ConventionalPlant(FarmManager *a_manager)
Definition: farm.cpp:2019
The base class for all crops.
Definition: farm.h:535
int m_first_date
Definition: farm.h:540
int m_ddegstoharvest
Definition: farm.h:543
int m_last_date
Definition: farm.h:542
FarmEvent * m_ev
Definition: farm.h:539
int GetFirstDate(void)
Definition: farm.h:562
int GetCropClassification()
Definition: farm.h:567
virtual ~Crop()
Definition: farm.h:560
Crop()
Definition: farm.cpp:297
Farm * m_farm
Definition: farm.h:537
void SetCropClassification(int a_classification)
Definition: farm.h:569
LE * m_field
Definition: farm.h:538
int m_count
Definition: farm.h:541
void SimpleEvent_(long a_date, int a_todo, bool a_lock, Farm *a_farm, LE *a_field)
Adds an event to this crop management without relying on member variables.
Definition: farm.cpp:312
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: farm.cpp:307
int m_CropClassification
Definition: farm.h:545
virtual bool Do(Farm *a_farm, LE *a_field, FarmEvent *a_ev)
Definition: farm.cpp:303
void ChooseNextCrop(int a_no_dates)
Chooses the next crop to grow in a field.
Definition: farm.cpp:318
A class for storing all parameters and results of crop optimisation.
Definition: farm.h:1634
double m_grooming
Value of mechanical weed control for a crop - grooming [DKK/ha].
Definition: farm.h:1673
double m_GM
Value of gross margin for a crop (m_income_ha - m_costs_ha) [DKK/ha].
Definition: farm.h:1689
double m_rotationMin
Minimum area in percent of farm's arable area for a given crop (depends on a farm size,...
Definition: farm.h:1652
double m_initialArea
Initial area of a crop on a farm [ha].
Definition: farm.h:1642
double m_optimalN
Optimal amount of fertilizer per ha of a crop supposing ferilizer price equals zero [kg N/ha]....
Definition: farm.h:1660
double m_areaVariable
Area of a crop that can be changed when checking for restrictions (=m_areaPercent - m_rotationMin) [%...
Definition: farm.h:1697
double m_savings
Value of savings resulting from growing a fodder crop and not purchasing amount of fodder correspondi...
Definition: farm.h:1691
double m_hoeing
Value of mechanical weed control for a crop - hoeing [DKK/ha].
Definition: farm.h:1675
double m_benefit
A value of selling price for non-fodder crops or a value of fodder units obtained from a hkg of a fod...
Definition: farm.h:1663
double m_n
Total amount of fertilizer applied per ha of a crop [kg N/ha].
Definition: farm.h:1656
double m_area_ha
Area of a crop in ha at a farm [ha].
Definition: farm.h:1699
double m_BIFi
Value of BI for fung- and insecticides [BI/ha].
Definition: farm.h:1669
double m_BIHerb
Value of BI for herbicides [BI/ha].
Definition: farm.h:1667
double m_lossHerb
Value of the yield loss due to the limited use of herbicides [%].
Definition: farm.h:1679
double m_nt
Amount of purchased (and applied) fertilizer per ha of a crop [kg N/ha].
Definition: farm.h:1658
double m_lossFi
Value of the yield loss due to the limited use of fung- and insecticides [%].
Definition: farm.h:1681
double m_rotationMax
Maximum area in percent of farm's arable area for a given crop (depends on a farm size,...
Definition: farm.h:1650
double m_totalLoss
Summary value of the yield loss due to the limited use of herbicides and fung- and insecticides [%].
Definition: farm.h:1683
TTypesOfVegetation m_cropType_almass
Type/name of a crop (ALMaSS crops).
Definition: farm.h:1646
double m_areaPercent
Area of a crop in percent of a farm's total area [%].
Definition: farm.h:1695
double m_resp
Response - yield of a crop per ha [hkg/ha].
Definition: farm.h:1665
double m_GM_Savings
Holds the value of m_GM in case of non-fodder crops and a value of m_savings in case of fodder crops ...
Definition: farm.h:1693
TTypesOfCrops m_cropType
Type/name of a crop (original farm optimization model crop types).
Definition: farm.h:1644
double m_BI
Summary value of BI for herbicides and fung- and insecticides [BI/ha].
Definition: farm.h:1671
CropOptimised()
Definition: farm.cpp:5118
double m_income_ha
Value of income per ha of a crop. Includes value of sales and subsidy [DKK/ha].
Definition: farm.h:1687
double m_weeding
Value of mechanical weed control for a crop - manual weeding [DKK/ha].
Definition: farm.h:1677
double m_costs_ha
Costs of growing 1 ha of a crop. Include costs of labour and machine (constant), pesticides (herbicid...
Definition: farm.h:1685
Class storing farm information: farm's number used in ALMaSS system, farm's soil type,...
Definition: farm.h:675
int md_farmRealID
Definition: farm.h:681
int md_almass_no
Definition: farm.h:677
int md_soilSubType
Definition: farm.h:682
TTypesOfFarmSize md_farmSize
Definition: farm.h:680
TTypesOfOptFarms md_farmType
Definition: farm.h:678
TTypesOfSoils md_soilType
Definition: farm.h:679
Class for storing data for optimisation.
Definition: farm.h:589
vector< int > m_winterMax
Maximal area taken by winter crops at a farm. [%].
Definition: farm.h:716
void Set_fixed(string a_value, int i)
Definition: farm.h:634
int Get_noCrops()
Definition: farm.h:669
void Set_FUKey(double a_value, int i)
Definition: farm.h:644
int Get_cropAreasSize()
Definition: farm.h:608
void Set_noCrops(int no)
Definition: farm.h:668
void Set_cropArea(double a_area)
Definition: farm.h:604
DataForOptimisation()
The constructor.
Definition: farm.cpp:5050
vector< double > m_rotationMin
Minimum acreage of a crop at a farm [%]. Farm type, soil type and farm size specific.
Definition: farm.h:755
double Get_beta2(int i)
Definition: farm.h:629
void Set_sellingPrice(double a_value, int i)
Definition: farm.h:647
void Set_livestockParameter(double a_value, int i)
Definition: farm.h:617
vector< TTypesOfAnimals > m_livestockTypes
Livestock types saved as enumarator types.
Definition: farm.h:709
int Get_cropTypes_almass_size()
Definition: farm.h:664
vector< double > m_energy_maize_price
Vector with energy maize prices for each year of simulation.
Definition: farm.h:759
vector< bool > m_fixed
Crop Boolean parameter - fixed/variable crop. Farm type specific.
Definition: farm.h:741
vector< string > m_str_cropTypes
Crop types saved in string format (Bedriftsmodel i.e. original crop optimization model crop mode).
Definition: farm.h:700
TTypesOfVegetation Get_cropTypes_almass(int i)
Definition: farm.h:663
void InitializeVector(vector< double > &vector)
Initializes vector with -1 values.
Definition: farm.cpp:5039
int Get_winterMax(int i)
Definition: farm.h:614
void Set_biomass_factor(double a_value, int i)
Definition: farm.h:659
int Get_livestockNumber(int index)
Definition: farm.h:605
void Set_rotationMax(double a_value, int i)
Definition: farm.h:652
double Get_biomass_factor(int i)
Definition: farm.h:660
void Set_beta1(double a_value, int i)
Definition: farm.h:626
int Get_livestockNumbersSize()
Definition: farm.h:606
double Get_rotationMin(int i)
Definition: farm.h:655
vector< double > m_livestockParameters
Vector storing parameters of all livestock types.
Definition: farm.h:720
vector< double > m_FUKey
Crop parameter: Fodder unit key, i.e. a number of fodder units obtained from a given crop [FU/hkg]....
Definition: farm.h:745
void Set_rotationMin(double a_value, int i)
Definition: farm.h:654
string Get_cropTypes_almass_str(int i)
Definition: farm.h:666
double Get_sellingPrice(int i)
Definition: farm.h:648
void Set_emaize_price(double a_value)
Definition: farm.h:671
string Get_cropTypes_str(int i)
Definition: farm.h:599
void Set_alfa(double a_value, int i)
Definition: farm.h:624
vector< TTypesOfCrops > m_cropTypes
Crop types saved as enumarator types (Bedriftsmodel i.e. original crop optimization model crop mode).
Definition: farm.h:702
vector< double > m_cropAreas
Vector containing values of initial (i.e. in year the data is taken for) crop areas at farms included...
Definition: farm.h:711
double Get_livestockParameter(int i)
Definition: farm.h:618
void Set_fodder(string a_value, int i)
Definition: farm.h:639
vector< double > m_beta1
Crop parameter for response (growth) function (resp = alfa + beta1*N + beta2*N^2; defines relationshi...
Definition: farm.h:730
bool Get_fodder(int i)
Definition: farm.h:643
TTypesOfAnimals Get_livestockTypes(int i)
Definition: farm.h:598
vector< double > m_sellingPrice_lastyr
Selling price of a crop in a previous year [DKK/hkg]. Farm type specific and soil type specific.
Definition: farm.h:750
TTypesOfCrops Get_cropTypes(int i)
Definition: farm.h:600
double Get_alfa(int i)
Definition: farm.h:625
vector< double > m_Nnorm
Maximum amount of fertilizer (N) that can be applied for a given crop [kg N/ha]. Soil specific.
Definition: farm.h:734
TTypesOfOptFarms Get_farmType(int a_almass_no)
Used by FarmManager::CreateFarms. Finds a matching almass number and returns farm's type.
Definition: farm.cpp:5086
vector< double > m_biomass_factors
Factor used to determine actual response (yield per ha) based on crop biomass at a harvest....
Definition: farm.h:737
double Get_rotationMax(int i)
Definition: farm.h:653
vector< bool > m_fodder
Crop Boolean parameter - fodder/non-fodder crop. Farm type specific.
Definition: farm.h:743
double Get_Nnorm(int i)
Definition: farm.h:631
void Set_cropTypes_almass(TTypesOfVegetation crop_type)
Definition: farm.h:662
int m_noCrops
Number of crops used in the simulation.
Definition: farm.h:693
double Get_FUKey(int i)
Definition: farm.h:645
void Set_cropTypes_str(string crop_type)
Definition: farm.h:597
void Set_sellingPrice_lastyr(double a_value, int i)
Definition: farm.h:649
void Set_Nnorm(double a_value, int i)
Definition: farm.h:630
void Set_cropTypes(TTypesOfCrops crop_type)
Definition: farm.h:596
bool Get_fixed(int i)
Definition: farm.h:638
vector< TTypesOfVegetation > m_cropTypes_almass
Crop types saved as enumarator types (ALMaSS crop mode).
Definition: farm.h:707
void Set_cropParameter(double a_value, int i)
Definition: farm.h:621
vector< double > m_sellingPrice
Selling price of a crop [DKK/hkg]. Farm type specific and soil type specific.
Definition: farm.h:748
vector< double > m_beta2
Crop parameter for response (growth) function (resp = alfa + beta1*N + beta2*N^2; defines relationshi...
Definition: farm.h:732
double Get_cropParameter(int i)
Definition: farm.h:622
vector< int > m_livestockNumbers
Vector containing numbers of all livestock types at farms included in the simulation.
Definition: farm.h:713
void Set_cropTypes_almass_str(string crop_type)
Definition: farm.h:665
void Set_beta2(double a_value, int i)
Definition: farm.h:628
double Get_beta1(int i)
Definition: farm.h:627
void Set_winterMax(int a_value, int i)
Definition: farm.h:613
vector< double > m_alfa
Crop parameter for response (growth) function (resp = alfa + beta1*N + beta2*N^2; defines relationshi...
Definition: farm.h:728
void Set_livestockTypes(TTypesOfAnimals livestock_type)
Definition: farm.h:595
double Get_cropArea(int index)
Definition: farm.h:607
vector< FarmData * > m_farm_data
Definition: farm.h:685
void Set_livestockNumber(int a_number)
Definition: farm.h:603
vector< string > m_str_cropTypes_almass
Crop types saved in string format (ALMaSS crop mode).
Definition: farm.h:705
vector< double > m_rotationMax
Maximum acreage of a crop at a farm [%]. Farm type, soil type and farm size specific.
Definition: farm.h:753
double Get_emaize_price(int i)
Definition: farm.h:672
vector< double > m_cropParameters
Vector storing parameters of all crop types.
Definition: farm.h:725
double Get_sellingPrice_lastyr(int i)
Definition: farm.h:650
The base class for all farm types.
Definition: farm.h:768
NLMaize * m_nlmaize
Definition: farm.h:1072
void ReadRotation(std::string fname)
Reads a rotation file into the rotation.
Definition: farm.cpp:816
OPotatoes * m_opotatoes
Definition: farm.h:992
Potatoes * m_potatoes
Definition: farm.h:1011
virtual bool CattleOutLowGrazing(LE *a_field, double a_user, int a_days)
Start a extensive grazing event on a_field today.
Definition: farmfuncs.cpp:1944
virtual bool Spraying_fungins(TTypesOfVegetation)
Definition: farm.h:785
virtual bool FA_NPK(LE *a_field, double a_user, int a_days)
Apply NPK fertilizer to a_field owned by an stock farmer.
Definition: farmfuncs.cpp:917
WinterRapeStrigling * m_winterrapestrigling
Definition: farm.h:1041
virtual bool CutToSilage(LE *a_field, double a_user, int a_days)
Cut vegetation for silage on a_field.
Definition: farmfuncs.cpp:2329
bool DoIt(double a_probability)
Return chance out of 0 to 100.
Definition: farm.cpp:800
virtual bool FA_Slurry(LE *a_field, double a_user, int a_days)
Spready slurry on a_field owned by an stock farmer.
Definition: farmfuncs.cpp:965
OWinterWheatUndersownExt * m_owinterwheatundersownext
Definition: farm.h:1006
SeedGrass2 * m_seedgrass2
Definition: farm.h:1014
virtual bool HayTurning(LE *a_field, double a_user, int a_days)
Carry out hay turning on a_field.
Definition: farmfuncs.cpp:2159
virtual void MakeStockFarmer(void)
Definition: farm.h:906
int GetFarmNumber(void)
Definition: farm.h:782
virtual bool ShallowHarrow(LE *a_field, double a_user, int a_days)
Carry out a shallow harrow event on a_field, e.g., after grass cutting event.
Definition: farmfuncs.cpp:498
virtual void InitiateManagement(void)
Kicks off the farm's management.
Definition: farm.cpp:1514
WinterWheatStriglingSingle * m_winterwheatstriglingsingle
Definition: farm.h:1035
virtual bool FP_LiquidNH3(LE *a_field, double a_user, int a_days)
Apply liquid ammonia fertilizer to a_field owned by an arable farmer.
Definition: farmfuncs.cpp:677
int GetAreaOpenFields(int a_openness)
Returns the area of the fields above an openness of a_openness.
Definition: farm.cpp:1369
polylist * ListOpenFields(int a_openness)
Returns a list of fields with openness above a_openness.
Definition: farm.cpp:9399
PLMaize * m_plmaize
Definition: farm.h:1058
OSeedGrass2 * m_oseedgrass2
Definition: farm.h:994
vector< PermCropData > m_PermCrops
Definition: farm.h:939
virtual bool FP_GreenManure(LE *a_field, double a_user, int a_days)
Spread green manure on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:798
MaizeSilage * m_maizesilage
Definition: farm.h:977
OCarrots * m_ocarrots
Definition: farm.h:980
void RemoveHunter(Hunter *a_hunter)
Definition: farm.h:925
int m_intensity
Definition: farm.h:946
virtual bool HayBailing(LE *a_field, double a_user, int a_days)
Carry out hay bailing on a_field.
Definition: farmfuncs.cpp:2184
void AddField(LE *a_newfield)
Adds a field to a farm.
Definition: farm.cpp:1447
OWinterRye * m_owinterrye
Definition: farm.h:1003
virtual bool StriglingSow(LE *a_field, double a_user, int a_days)
Carry out a mechanical weeding followed by sowing on a_field.
Definition: farmfuncs.cpp:1597
void Centroids()
Finds farm's centroids - x and y.
Definition: farm.cpp:5334
bool LeSwitch(FarmEvent *ev)
Call do function for any crop with an outstanding event. Signal if the crop has terminated.
Definition: farm.cpp:386
PLMaizeSilage * m_plmaizesilage
Definition: farm.h:1059
WinterRape * m_winterrape
Definition: farm.h:1026
virtual bool PigsAreOut(LE *a_field, double a_user, int a_days)
Start a pig grazing event on a_field today or soon.
Definition: farmfuncs.cpp:2112
virtual bool SpringPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the spring on a_field.
Definition: farmfuncs.cpp:444
NLBeetSpring * m_nlbeetspring
Definition: farm.h:1083
virtual bool CattleOut(LE *a_field, double a_user, int a_days)
Start a grazing event on a_field today.
Definition: farmfuncs.cpp:1910
virtual bool FP_PK(LE *a_field, double a_user, int a_days)
Apply PK fertilizer, on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:653
int GetFirstDate(TTypesOfVegetation a_tov)
Gets the start date for a crop type.
Definition: farm.cpp:1582
virtual bool RowCultivation(LE *a_field, double a_user, int a_days)
Carry out a harrowing between crop rows on a_field.
Definition: farmfuncs.cpp:1510
SpringBarleyPeaCloverGrassStrigling * m_springbarleypeaclovergrassstrigling
Definition: farm.h:1045
virtual bool FA_RSM(LE *a_field, double a_user, int a_days)
RSM (ammonium nitrate solution) applied on a_field owned by a stock farmer.
Definition: farmfuncs.cpp:1111
virtual bool HarvestLong(LE *a_field, double a_user, int a_days)
Carry out a harvest on a_field.
Definition: farmfuncs.cpp:1821
CloverGrassGrazed2 * m_CGG2
Definition: farm.h:970
PLWinterBarley * m_plwinterbarley
Definition: farm.h:1053
FarmManager * m_OurManager
Pointer to the FarmManager.
Definition: farm.h:935
OBarleyPeaCloverGrass * m_OBarleyPCG
Definition: farm.h:979
virtual bool AutumnHarrow(LE *a_field, double a_user, int a_days)
Carry out a harrow event in the autumn on a_field.
Definition: farmfuncs.cpp:261
WWheatPControl * m_wwheatpcontrol
Definition: farm.h:1029
virtual bool StubbleHarrowing(LE *a_field, double a_user, int a_days)
Carry out stubble harrowing on a_field.
Definition: farmfuncs.cpp:2209
void AddNewEvent(TTypesOfVegetation a_event, long a_date, LE *a_field, int a_todo, long a_num, bool a_lock, int a_start, bool a_first_year, TTypesOfVegetation a_crop)
Adds an event to the event queue for a farm.
Definition: farm.cpp:789
virtual bool FA_Manure(LE *a_field, double a_user, int a_days)
Spread manure on a_field owned by an stock farmer.
Definition: farmfuncs.cpp:1036
SpringBarleySKManagement * m_springbarleyskmanagement
Definition: farm.h:1018
NLMaizeSpring * m_nlmaizespring
Definition: farm.h:1085
virtual bool SleepAllDay(LE *a_field, double a_user, int a_days)
Nothing to to today on a_field.
Definition: farmfuncs.cpp:241
PLSpringBarley * m_plspringbarley
Definition: farm.h:1057
void RemoveField(LE *a_field)
Removes a field from a farm.
Definition: farm.cpp:1473
TTypesOfVegetation GetPreviousCrop(int a_index)
Definition: farm.h:909
virtual bool CutWeeds(LE *a_field, double a_user, int a_days)
Carry out weed topping on a_field.
Definition: farmfuncs.cpp:2303
OCloverGrassGrazed2 * m_OCGG2
Definition: farm.h:982
bool IsStockFarmer(void)
Definition: farm.h:905
bool DoIt_prob(double a_probability)
Return chance out of 0 to 1.
Definition: farm.cpp:808
Oats * m_oats
Definition: farm.h:989
NLWinterWheat * m_nlwinterwheat
Definition: farm.h:1075
SpringBarleySilage * m_springbarleysilage
Definition: farm.h:1022
NLGrassGrazed1Spring * m_nlgrassgrazed1spring
Definition: farm.h:1079
virtual bool FA_GreenManure(LE *a_field, double a_user, int a_days)
Spread green manure on a_field owned by an stock farmer.
Definition: farmfuncs.cpp:1062
NLPotatoes * m_nlpotatoes
Definition: farm.h:1073
OFieldPeasSilage * m_ofieldpeassilage
Definition: farm.h:985
int InvIntPartition(vector< tpct > *items, int target)
Finds all possible sums of the integers in the items array.
Definition: farm.cpp:2493
vector< LE * > m_fields
Definition: farm.h:937
OMaizeSilage * m_omaizesilage
Definition: farm.h:978
WinterRyeStrigling * m_winterryestrigling
Definition: farm.h:1042
OWinterRape * m_owinterrape
Definition: farm.h:1002
WinterWheat * m_winterwheat
Definition: farm.h:1028
PermanentGrassLowYield * m_permgrasslowyield
Definition: farm.h:1008
virtual bool FP_Sludge(LE *a_field, double a_user, int a_days)
Spread sewege on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:822
void CheckRotationManagementLoop(FarmEvent *ev)
Definition: farm.cpp:839
NLCarrots * m_nlcarrots
Definition: farm.h:1071
TTypesOfFarm GetType(void)
Definition: farm.h:901
DummyCropPestTesting * m_dummycroppesttesting
Definition: farm.h:1091
BroadBeans * m_broadbeans
Definition: farm.h:967
PLWinterTriticale * m_plwintertriticale
Definition: farm.h:1054
OGrazingPigs * m_ograzingpigs
Definition: farm.h:987
SpringBarley * m_springbarley
Definition: farm.h:1016
NLGrassGrazedLast * m_nlgrassgrazedlast
Definition: farm.h:1081
OPermanentGrassGrazed * m_opermgrassgrazed
Definition: farm.h:991
NLSpringBarleySpring * m_nlspringbarleyspring
Definition: farm.h:1087
virtual bool SpringSow(LE *a_field, double a_user, int a_days)
Carry out a sowing event in the spring on a_field.
Definition: farmfuncs.cpp:546
virtual bool FP_Manure(LE *a_field, double a_user, int a_days)
Spread manure on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:773
PLPotatoes * m_plpotatoes
Definition: farm.h:1060
virtual bool FP_AmmoniumSulphate(LE *a_field, double a_user, int a_days)
Apply Ammonium Sulphate to a_field owned by an arable farmer.
Definition: farmfuncs.cpp:750
virtual bool PigsAreOutForced(LE *a_field, double a_user, int a_days)
Start a pig grazing event on a_field today - no exceptions.
Definition: farmfuncs.cpp:2090
virtual bool BurnStrawStubble(LE *a_field, double a_user, int a_days)
Burn stubble on a_field.
Definition: farmfuncs.cpp:2236
virtual bool CattleIsOut(LE *a_field, double a_user, int a_days, int a_max)
Generate a 'cattle_out' event for every day the cattle are on a_field.
Definition: farmfuncs.cpp:1974
NLCabbage * m_nlcabbage
Definition: farm.h:1076
SetAside * m_setaside
Definition: farm.h:1015
NorwegianSpringBarley * m_norwegianspringbarley
Definition: farm.h:1049
virtual bool FP_ManganeseSulphate(LE *a_field, double a_user, int a_days)
Apply Manganse Sulphate to a_field owned by an arable farmer.
Definition: farmfuncs.cpp:727
vector< TTypesOfVegetation > m_rotation
Definition: farm.h:938
APoint GetValidCoords()
Returns the valid coordinates of the first field owned by a farm.
Definition: farm.h:800
PLWinterWheat * m_plwinterwheat
Definition: farm.h:1051
virtual int GetFirstCropIndex(TTypesOfLandscapeElement a_type)
Gets the first crop for the farm.
Definition: farm.cpp:1385
OSeedGrass1 * m_oseedgrass1
Definition: farm.h:993
virtual bool AutumnPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the autumn on a_field.
Definition: farmfuncs.cpp:132
OWinterBarleyExt * m_owinterbarleyext
Definition: farm.h:1001
PLSpringWheat * m_plspringwheat
Definition: farm.h:1056
virtual bool AutumnRoll(LE *a_field, double a_user, int a_days)
Carry out a roll event in the autumn on a_field.
Definition: farmfuncs.cpp:288
PLBeetSpr * m_plbeetspr
Definition: farm.h:1067
int GetTotalArea(void)
Returns the area of all fields owned by that farm.
Definition: farm.cpp:1340
virtual bool FP_Calcium(LE *a_field, double a_user, int a_days)
Calcium applied on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:869
virtual bool StubblePlough(LE *a_field, double a_user, int a_days)
Carry out a stubble ploughing event on a_field. This is similar to normal plough but shallow (normall...
Definition: farmfuncs.cpp:169
virtual bool HerbicideTreat(LE *a_field, double a_user, int a_days)
Apply herbicide to a_field.
Definition: farmfuncs.cpp:1156
double GetAreaDouble(void)
Returns the area of arable fields owned by that farm.
Definition: farm.cpp:1350
WinterWheatStriglingCulm * m_winterwheatstriglingculm
Definition: farm.h:1034
int m_farm_centroidy
Farm's centroid, value y. Equal to the average of the y centroid values of all farm's fields.
Definition: farm.h:961
NLBeet * m_nlbeet
Definition: farm.h:1070
virtual bool Spraying_herbicides(TTypesOfVegetation)
Definition: farm.h:784
int GetMaxOpenness()
Returns the maximum openness score of the fields.
Definition: farm.h:802
PLFodderLucerne1 * m_plfodderlucerne1
Definition: farm.h:1062
virtual bool ProductApplication(LE *a_field, double a_user, int a_days, double a_applicationrate, PlantProtectionProducts a_ppp)
Apply test pesticide to a_field.
Definition: farmfuncs.cpp:1445
virtual bool FP_NPK(LE *a_field, double a_user, int a_days)
Apply NPK fertilizer, on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:629
WWheatPTreatment * m_wwheatptreatment
Definition: farm.h:1031
SpringRape * m_springrape
Definition: farm.h:1023
PLBeans * m_plbeans
Definition: farm.h:1068
FodderGrass * m_foddergrass
Definition: farm.h:968
PLSpringBarleySpr * m_plspringbarleyspr
Definition: farm.h:1065
virtual bool CutToHay(LE *a_field, double a_user, int a_days)
Carry out hay cutting on a_field.
Definition: farmfuncs.cpp:2269
virtual int GetNextCropIndex(int a_rot_index)
Returns the next crop in the rotation.
Definition: farm.cpp:1427
WinterRye * m_winterrye
Definition: farm.h:1027
MaizeStrigling * m_maizestrigling
Definition: farm.h:1040
virtual double Prob_multiplier()
Definition: farm.h:786
virtual bool HillingUp(LE *a_field, double a_user, int a_days)
Do hilling up on a_field, probably of potatoes.
Definition: farmfuncs.cpp:1663
SpringBarleyPTreatment * m_springbarleyptreatment
Definition: farm.h:1019
virtual bool FlowerCutting(LE *a_field, double a_user, int a_days)
Flower cutting applied on a_field.
Definition: farmfuncs.cpp:2437
WinterBarley * m_winterbarley
Definition: farm.h:1025
virtual bool PreseedingCultivatorSow(LE *a_field, double a_user, int a_days)
Carry out preseeding cultivation together with sow on a_field (tilling and sowing set including culti...
Definition: farmfuncs.cpp:337
int GetNextCropStartDate(LE *a_field, TTypesOfVegetation &a_curr_veg)
Returns the start date of the next crop in the rotation.
Definition: farm.cpp:864
virtual bool BedForming(LE *a_field, double a_user, int a_days)
Do bed forming up on a_field, probably of carrots.
Definition: farmfuncs.cpp:1690
TTypesOfVegetation GetCrop(int a_index)
Definition: farm.h:914
OCloverGrassSilage1 * m_OCGS1
Definition: farm.h:983
virtual bool GrowthRegulator(LE *a_field, double a_user, int a_days)
Apply growth regulator to a_field.
Definition: farmfuncs.cpp:1250
virtual bool HeavyCultivatorAggregate(LE *a_field, double a_user, int a_days)
Carry out a heavy cultivation event on a_field. This is non-inversion type of cultivation which can b...
Definition: farmfuncs.cpp:217
OCloverGrassGrazed1 * m_OCGG1
Definition: farm.h:981
virtual bool Biocide(LE *a_field, double a_user, int a_days)
Biocide applied on a_field.
Definition: farmfuncs.cpp:2415
NLCatchPeaCrop * m_nlcatchpeacrop
Definition: farm.h:1089
NLPotatoesSpring * m_nlpotatoesspring
Definition: farm.h:1086
virtual bool FP_Slurry(LE *a_field, double a_user, int a_days)
Apply slurry to a_field owned by an arable farmer.
Definition: farmfuncs.cpp:701
virtual bool StrawCovering(LE *a_field, double a_user, int a_days)
Straw covering applied on a_field.
Definition: farmfuncs.cpp:2502
virtual bool StrawRemoval(LE *a_field, double a_user, int a_days)
Straw covering applied on a_field.
Definition: farmfuncs.cpp:2524
OFirstYearDanger * m_ofirstyeardanger
Definition: farm.h:986
virtual bool FA_ManganeseSulphate(LE *a_field, double a_user, int a_days)
Apply manganese sulphate to a_field owned by an stock farmer.
Definition: farmfuncs.cpp:1013
virtual bool FA_Sludge(LE *a_field, double a_user, int a_days)
Spread sewege sludge on a_field owned by an stock farmer.
Definition: farmfuncs.cpp:1086
OFodderbeet * m_ofodderbeet
Definition: farm.h:975
SpringBarleyStriglingSingle * m_springbarleystriglingsingle
Definition: farm.h:1039
virtual bool FP_RSM(LE *a_field, double a_user, int a_days)
RSM (ammonium nitrate solution) applied on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:847
OSpringBarley * m_ospringbarley
Definition: farm.h:995
SpringBarleyStriglingCulm * m_springbarleystriglingculm
Definition: farm.h:1038
OrchardCrop * m_orchardcrop
Definition: farm.h:988
virtual void Management(void)
Starts the main management loop for the farm and performs some error checking.
Definition: farm.cpp:361
virtual bool StubbleCultivatorHeavy(LE *a_field, double a_user, int a_days)
Carry out a stubble cultivation event on a_field. This is non-inversion type of cultivation which can...
Definition: farmfuncs.cpp:193
WinterWheatStrigling * m_winterwheatstrigling
Definition: farm.h:1033
PotatoesIndustry * m_potatoesindustry
Definition: farm.h:1012
void Assign_rotation(vector< TTypesOfVegetation >a_new_rotation)
Definition: farm.cpp:1488
virtual bool FA_AmmoniumSulphate(LE *a_field, double a_user, int a_days)
Apply ammonium sulphate to a_field owned by an stock farmer.
Definition: farmfuncs.cpp:990
int GetIntensity(void)
Definition: farm.h:907
Fodderbeet * m_fodderbeet
Definition: farm.h:973
int GetArea(void)
Returns the area of arable fields owned by that farm.
Definition: farm.cpp:1331
LowPriority< FarmEvent * > m_queue
Definition: farm.h:936
SpringBarleyCloverGrassStrigling * m_springbarleyclovergrassstrigling
Definition: farm.h:1036
virtual bool SpringHarrow(LE *a_field, double a_user, int a_days)
Carry out a harrow event in the spring on a_field.
Definition: farmfuncs.cpp:471
virtual bool PigsOut(LE *a_field, double a_user, int a_days)
Generate a 'pigs_out' event for every day the cattle are on a_field.
Definition: farmfuncs.cpp:2062
OSpringBarleyExt * m_ospringbarleyext
Definition: farm.h:996
PLWinterRye * m_plwinterrye
Definition: farm.h:1055
FieldPeasStrigling * m_fieldpeasstrigling
Definition: farm.h:1044
OWinterBarley * m_owinterbarley
Definition: farm.h:1000
APoint GetCentroids()
Definition: farm.h:908
SpringBarleySpr * m_springbarleyspr
Definition: farm.h:1017
NLCabbageSpring * m_nlcabbagespring
Definition: farm.h:1088
SpringBarleySeed * m_springbarleyseed
Definition: farm.h:1021
virtual bool SpringRoll(LE *a_field, double a_user, int a_days)
Carry out a roll event in the spring on a_field.
Definition: farmfuncs.cpp:525
NLCarrotsSpring * m_nlcarrotsspring
Definition: farm.h:1084
NLGrassGrazed1 * m_nlgrassgrazed1
Definition: farm.h:1078
HunterList m_HuntersList
A list of hunters allocated to this farm.
Definition: farm.h:942
virtual bool Strigling(LE *a_field, double a_user, int a_days)
Carry out a mechanical weeding on a_field.
Definition: farmfuncs.cpp:1545
OWinterWheatUndersown * m_owinterwheatundersown
Definition: farm.h:1004
OTriticale * m_otriticale
Definition: farm.h:999
Triticale * m_triticale
Definition: farm.h:1024
virtual bool AutumnSow(LE *a_field, double a_user, int a_days)
Carry out a sowing event in the autumn on a_field.
Definition: farmfuncs.cpp:364
SpringBarleyStrigling * m_springbarleystrigling
Definition: farm.h:1037
NorwegianPotatoes * m_norwegianpotatoes
Definition: farm.h:1047
virtual bool StrawChopping(LE *a_field, double a_user, int a_days)
Carry out straw chopping on a_field.
Definition: farmfuncs.cpp:2132
WWheatPToxicControl * m_wwheatptoxiccontrol
Definition: farm.h:1030
Sugarbeet * m_sugarbeet
Definition: farm.h:974
virtual bool FA_NPKS(LE *a_field, double a_user, int a_days)
Apply NPKS fertilizer, on a_field owned by a stock farmer.
Definition: farmfuncs.cpp:891
FieldPeas * m_fieldpeas
Definition: farm.h:971
virtual bool StriglingHill(LE *a_field, double a_user, int a_days)
Carry out a mechanical weeding on a_field followed by hilling up (probably on potatoes)
Definition: farmfuncs.cpp:1635
NLGrassGrazed2 * m_nlgrassgrazed2
Definition: farm.h:1080
PLWinterRape * m_plwinterrape
Definition: farm.h:1052
OWinterWheat * m_owinterwheat
Definition: farm.h:1005
virtual bool FP_NPKS(LE *a_field, double a_user, int a_days)
Apply NPKS fertilizer, on a_field owned by an arable farmer.
Definition: farmfuncs.cpp:602
YoungForestCrop * m_youngforest
Definition: farm.h:1046
WinterBarleyStrigling * m_winterbarleystrigling
Definition: farm.h:1043
FieldPeasSilage * m_fieldpeassilage
Definition: farm.h:972
virtual void HandleEvents(void)
If there are events to carry out do this, and perhaps start a new crop.
Definition: farm.cpp:882
PermanentGrassTussocky * m_permgrasstussocky
Definition: farm.h:1009
virtual bool FungicideTreat(LE *a_field, double a_user, int a_days)
Apply fungicide to a_field.
Definition: farmfuncs.cpp:1279
bool m_stockfarmer
Definition: farm.h:943
void SetFarmNumber(int a_farm_num)
Definition: farm.h:781
virtual bool BulbHarvest(LE *a_field, double a_user, int a_days)
Carry out a bulb harvest on a_field.
Definition: farmfuncs.cpp:2465
virtual bool WinterPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the winter on a_field.
Definition: farmfuncs.cpp:392
int m_farm_num
Definition: farm.h:944
NLPermanentGrassGrazed * m_nlpermanentgrassgrazed
Definition: farm.h:1082
virtual bool FA_Calcium(LE *a_field, double a_user, int a_days)
Calcium applied on a_field owned by a stock farmer.
Definition: farmfuncs.cpp:1133
OOats * m_ooats
Definition: farm.h:990
int GetNoOpenFields(int a_openness)
Returns the number of the fields above an openness of a_openness.
Definition: farm.cpp:1359
PLBeet * m_plbeet
Definition: farm.h:1061
OSpringBarleyPigs * m_ospringbarleypigs
Definition: farm.h:997
virtual bool DeepPlough(LE *a_field, double a_user, int a_days)
Carry out a deep ploughing event on a_field.
Definition: farmfuncs.cpp:417
int GetNoFields()
Returns the number of the fields owned.
Definition: farm.h:794
virtual bool Water(LE *a_field, double a_user, int a_days)
Carry out a watering on a_field.
Definition: farmfuncs.cpp:1717
TTypesOfVegetation GetNextCrop(int a_index)
Definition: farm.h:917
virtual bool Swathing(LE *a_field, double a_user, int a_days)
Cut the crop on a_field and leave it lying (probably rape)
Definition: farmfuncs.cpp:1744
Maize * m_maize
Definition: farm.h:976
virtual bool InsecticideTreat(LE *a_field, double a_user, int a_days)
Apply insecticide to a_field.
Definition: farmfuncs.cpp:1348
Farm(FarmManager *a_manager)
Farm constructor - creates an instance of each possible crop type.
Definition: farm.cpp:1058
NLSpringBarley * m_nlspringbarley
Definition: farm.h:1074
virtual ~Farm(void)
Farm destructor - deletes all crop instances and empties event queues.
Definition: farm.cpp:1199
int m_farm_centroidx
Farm's centroid, value x. Equal to the average of the x centroid values of all farm's fields.
Definition: farm.h:959
int m_rotation_sync_index
Definition: farm.h:945
virtual bool CutOrch(LE *a_field, double a_user, int a_days)
Cut vegetation on orchard crop. //based on cut to silage - values from cutting function of orchard.
Definition: farmfuncs.cpp:2362
PLCarrots * m_plcarrots
Definition: farm.h:1064
AgroChemIndustryCereal * m_agrochemindustrycereal
Definition: farm.h:1032
virtual bool Harvest(LE *a_field, double a_user, int a_days)
Carry out a harvest on a_field.
Definition: farmfuncs.cpp:1769
virtual bool ProductApplication_DateLimited(LE *a_field, double, int, double a_applicationrate, PlantProtectionProducts a_ppp)
Special pesticide trial functionality.
Definition: farmfuncs.cpp:2396
NLTulips * m_nltulips
Definition: farm.h:1077
void AssignPermanentCrop(TTypesOfVegetation tov, int pct)
Used to assign a permanent crop to an otherwise rotational field polygon.
Definition: farm.cpp:2401
PLFodderLucerne2 * m_plfodderlucerne2
Definition: farm.h:1063
PLWinterWheatLate * m_plwinterwheatlate
Definition: farm.h:1066
OSBarleySilage * m_osbarleysilage
Definition: farm.h:998
PermanentGrassGrazed * m_permgrassgrazed
Definition: farm.h:1007
SeedGrass1 * m_seedgrass1
Definition: farm.h:1013
virtual bool Molluscicide(LE *a_field, double a_user, int a_days)
Apply molluscidie to a_field.
Definition: farmfuncs.cpp:1481
TTypesOfFarm m_farmtype
Definition: farm.h:940
NorwegianOats * m_norwegianoats
Definition: farm.h:1048
virtual bool CattleIsOutLow(LE *a_field, double a_user, int a_days, int a_max)
Generate a 'cattle_out_low' event for every day the cattle are on a_field.
Definition: farmfuncs.cpp:2018
Carrots * m_carrots
Definition: farm.h:966
OFieldPeas * m_ofieldpeas
Definition: farm.h:984
void AddHunter(Hunter *a_hunter)
Definition: farm.h:922
virtual bool FA_PK(LE *a_field, double a_user, int a_days)
Apply PK fertilizer to a_field owned by an stock farmer.
Definition: farmfuncs.cpp:941
CloverGrassGrazed1 * m_CGG1
Definition: farm.h:969
virtual bool PreseedingCultivator(LE *a_field, double a_user, int a_days)
Carry out preseeding cultivation on a_field (tilling set including cultivator and string roller to co...
Definition: farmfuncs.cpp:311
PermanentSetAside * m_permanentsetaside
Definition: farm.h:1010
SpringBarleyCloverGrass * m_sbarleyclovergrass
Definition: farm.h:1020
virtual bool SpringSowWithFerti(LE *a_field, double a_user, int a_days)
Carry out a sowing event with start fertilizer in the spring on a_field.
Definition: farmfuncs.cpp:574
The Farm Manager class.
Definition: farm.h:1707
vector< double > m_crops_fertilizer_trade
Stores information on aggregate (all farms) fertilizer trade (Nt) usage for each crop.
Definition: farm.h:1955
void Add_to_cropTotals(int i, double value)
Definition: farm.h:1838
vector< PesticideData > m_crops_summary_BIs
Stores information on aggregate (all farms)pesticide usage for each crop.
Definition: farm.h:1951
void Set_cropTotals(int i, double value)
Definition: farm.h:1839
void InitFarms()
Calls OptimisingFarm::Init for all optimising farms.
Definition: farm.cpp:3014
int FindClosestFarmOpennessProb(HunterInfo a_hinfo, vector< int > *a_farmlist, int a_openness)
Finds the closest farm to this co-ordinate with openness more than a value but uses a probability dis...
Definition: farm.cpp:3182
void PrintNeighbours()
Creates an output file with a list of neighbours of each OptimisingFarm.
Definition: farm.cpp:4701
void FarmManagement()
Runs the daily farm management for each farm, but also calculates annual spilled grain and maize.
Definition: farm.cpp:2707
void ActualProfit()
Calls OptimisingFarm::ActualProfit for all optimising farms.
Definition: farm.cpp:3433
void Set_crops_fertilizer_trade(int i, double fert_trade)
Definition: farm.h:1864
int GetFarmNoOpenFields(int a_farmref, int a_openness)
Returns the number of fields with openness more than a_openness.
Definition: farm.h:1754
double GetSpilledGrain()
Returns the average amount of spilled grain in KJ/m2 this year.
Definition: farm.cpp:3033
void ReadCropsData_perFarmType()
Reads the data on crops' parameters that vary with a farm type (fixed, fodder, FUKey) and saves them ...
Definition: farm.cpp:3881
TTypesOfSoils TranslateSoilCodes(string &str)
Definition: farm.cpp:4286
void Set_cropTotals_other_sum(int i, double crop_area)
Definition: farm.h:1861
void DumpFarmAreas()
Definition: farm.cpp:1964
vector< double > m_cropTotals_sum
Stores the sums of crops areas within one simulation at the landscape level.
Definition: farm.h:1941
void ReadCropsData_perFarm_and_Soil_almass()
Reads the data on crops' parameters that vary with a farm and soil type (sellingPrice) and saves them...
Definition: farm.cpp:4036
void Set_cropTotals_sum(int i, double crop_area)
Definition: farm.h:1857
bool InIllegalList(int a_farm_ref, vector< int > *a_farmlist)
Checks a list to see if a farm matches the illegal list of references.
Definition: farm.cpp:3088
void ReadCropsData_perFarm_and_Soil_and_Size()
Reads the data on crops' parameters that vary with a farm type, soil type and farm size (rotationMax,...
Definition: farm.cpp:4074
void Set_cropTotals_pig_sum(int i, double crop_area)
Definition: farm.h:1859
vector< double > m_cropTotals_pig_sum
Stores the sums of crops areas on pig farms within one simulation at the landscape level.
Definition: farm.h:1945
bool m_SpilledGrain
Is it 2013 (true) or 2014 (false) as far as grain goes.
Definition: farm.h:1912
void ReadCropsData_perFarm_and_Soil_and_Size_almass()
Reads the data on crops' parameters that vary with a farm type, soil type and farm size (rotationMax,...
Definition: farm.cpp:4117
void ReadFarmsData_perFarmType()
Reads the data on farms' parameters that vary with a farm type and saves them in a vector of a DataFo...
Definition: farm.cpp:4184
bool m_renumbered
A flag to show whether renumbering was already done.
Definition: farm.h:1917
int GetNoFarms()
Definition: farm.h:1900
void CreateFarms(const char *a_farmfile)
Definition: farm.cpp:2772
TTypesOfFarmSize TranslateFarmSizeCodes(string &str)
Definition: farm.cpp:4298
DataForOptimisation * pm_data
Pointer to the DataForOptimisation.
Definition: farm.h:1876
void ReadEnergyMaizePrice()
Definition: farm.cpp:4244
void ReadCropsData_perFarm_and_Soil()
Reads the data on crops' parameters that vary with a farm and soil type (sellingPrice) and saves them...
Definition: farm.cpp:4003
void ReadInitialCropAreas_almass()
Reads the data on farms' initial crop distributions and saves them in a vector of a DataForOptimisati...
Definition: farm.cpp:3612
TTypesOfLivestockParameters TranslateLivestockParametersCodes(string &str)
Definition: farm.cpp:4414
void ReadCropsData()
Reads the data on crops' parameters that do not vary with farm variables and saves them in a vector D...
Definition: farm.cpp:3656
double totalOptFarmsArea_cattle
Definition: farm.h:1933
void Set_cropTotals_plant_sum(int i, double crop_area)
Definition: farm.h:1858
APoint GetFarmCentroid(int a_farmref)
Gets the farm centroid as an APoint.
Definition: farm.h:1809
~FarmManager()
Farm manager destructor.
Definition: farm.cpp:2699
TTypesOfParameters TranslateParametersCodes(string &str)
Definition: farm.cpp:4387
int FindClosestFarmOpenness(HunterInfo a_hinfo, vector< int > *a_farmlist, int a_openness)
Finds the closest farm to this co-ordinate but uses a probability distribtution for acceptance.
Definition: farm.cpp:3155
int GetFarmNoFields(int a_farmref)
Returns the number of fields owned by a from the farm ref num.
Definition: farm.h:1743
void ChooseDecisionMode_for_farms()
Calls OptimisingFarm::ChooseDecisionMode for all optimising farms.
Definition: farm.cpp:3444
bool CheckOpenness(int a_openness, int a_ref)
Check if a farm has at least one field with openness above a_openness.
Definition: farm.cpp:3399
Population_Manager * m_population_manager
Definition: farm.h:1907
void ReadInitialCropAreas()
Reads the data on farms' initial crop distributions and saves them in a vector DataForOptimisation::m...
Definition: farm.cpp:3571
TTypesOfFarm GetFarmType(int a_farmref)
Returns the farm type from the farm ref num.
Definition: farm.h:1738
double GetSpilledMaize()
Returns the average amount of spilled maize in KJ/m2 this year.
Definition: farm.cpp:3064
int FindFarmWithOpenness(vector< int > *a_farmlist, int a_openness)
Finds a farm openness more than a value not on the list.
Definition: farm.cpp:3370
FarmManager()
Farm manager constructor.
Definition: farm.cpp:2626
void Set_crops_summary_BIs(int i, double BI)
Definition: farm.h:1856
void ReadCropsData_perSoilType()
Reads the data on crops' parameters that vary with a soil type (alfa, beta1, beta2,...
Definition: farm.cpp:3724
void CalcCentroids()
calculate all farm centroids
Definition: farm.h:1783
int * m_farmmapping_lookup
Used for a dynamic array of lookups converting farm references to internal renumbering.
Definition: farm.h:1915
void ReadCropsData_perFarmType_almass()
Reads the data on crops' parameters that vary with a farm type (fixed, fodder, FUKey) and saves them ...
Definition: farm.cpp:3937
void Set_crops_summary_BIs_herb(int i, double BIherb)
Definition: farm.h:1854
void PrintOutput(TTypesOfCropVariables a_var, string a_fileName)
Makes an output file for one crop variable and prints its values for each crop and each OptimisingFar...
Definition: farm.cpp:4504
void OptimisationOutput()
Creates output files for all crop level variables and for landscape level crop distribution....
Definition: farm.cpp:4451
void Save_last_years_crops_for_farms()
Calls OptimisingFarm::Save_last_years_crops for all optimising farms.
Definition: farm.cpp:3456
void InitiateManagement(void)
Definition: farm.cpp:2733
Farm * GetFarmPtr(int a_owner)
Returns the pointer to a farm with a specific number.
Definition: farm.h:1766
vector< Farm * > m_farms
Definition: farm.h:1906
int ConnectFarm(int a_owner)
Definition: farm.cpp:2752
int FindClosestFarm(HunterInfo a_hinfo, vector< int > *a_farmlist)
Finds the closest farm to this co-ordinate.
Definition: farm.cpp:3126
vector< double > m_cropTotals
Stores crops areas at the landscape level per year.
Definition: farm.h:1937
TTypesOfOptFarms TranslateFarmCodes(string &str)
Definition: farm.cpp:4273
void Save_diff_farm_types_areas()
Calculates and saves total areas of all optimising farms and specific farm types.
Definition: farm.cpp:3404
double totalOptFarmsArea
Definition: farm.h:1930
TTypesOfCropVariables TranslateCropVariablesCodes(string &str)
Definition: farm.cpp:4426
void Set_crops_summary_BIs_fi(int i, double BIfi)
Definition: farm.h:1855
double GetDD(void)
Returnes day degrees for the period March 1st - November 1st. Used for determining yields of crops th...
Definition: farm.h:1835
void ReadLookupTable()
Reads the lookup table with allowed/forbidden crop order from a text file and saves it into a vector ...
Definition: farm.cpp:4625
vector< int > m_crop_lookup_table
Specifies which crop order is allowed in a rotation (i.e. if a given crop can follow another crop).
Definition: farm.h:1939
double totalOptFarmsArea_plant
Definition: farm.h:1931
void Create_Output_file_for_farms()
Creates an output file. Prints the crop variables in the first row of the file. The file is used then...
Definition: farm.cpp:4609
double totalOptFarmsArea_other
Definition: farm.h:1934
void Set_cropTotals_cattle_sum(int i, double crop_area)
Definition: farm.h:1860
APoint GetFarmValidCoords(int a_farmref)
Returns the number of fields owned by a from the farm ref num.
Definition: farm.h:1748
TTypesOfVegetation Get_crops_summary_BIs_tov(int i)
Definition: farm.h:1853
int FindClosestFarmOpennessProbSmallIsBest(HunterInfo a_hinfo, vector< int > *a_farmlist, int a_openness, vector< int > *a_farmsizelist)
Finds the closest farm to this co-ordinate with openness more than a value but uses a probability dis...
Definition: farm.cpp:3233
void ReadCropsData_perSoilType_almass()
Reads the data on crops' parameters that vary with a soil type (alfa, beta1, beta2,...
Definition: farm.cpp:3790
int GetFarmAreaOpenFields(int a_farmref, int a_openness)
Returns the area of fields with openness more than a_openness.
Definition: farm.h:1760
int GetFarmArableSize(int a_farmref)
Returns the arable area from the farm ref num.
Definition: farm.h:1733
int FindOpennessFarm(int a_openness)
Finds a random farm with at least one field with openness above a_openness.
Definition: farm.cpp:3387
void AddToIllegalList(int a_farm_ref, vector< int > *a_farmlist)
Add to a list if a farm is not already among the illegal list of references.
Definition: farm.cpp:3099
void AddField(int a_OwnerIndex, LE *a_newland, int a_Owner)
Definition: farm.cpp:2741
TTypesOfVegetation TranslateCropCodes(std::string &str)
Definition: farm.cpp:1818
bool IsDuplicateRef(int a_ref, HunterInfo *a_hinfo)
Checks if we already have this ref.
Definition: farm.cpp:3116
double daydegrees
Daydegress for period March 1st - November 1st. Used to determine yield of crops that are not harvest...
Definition: farm.h:1910
void Set_crops_fertilizer(int i, double fert)
Definition: farm.h:1863
void FindNeighbours()
Finds all OptimisingFarms' neighbours and saves them in the farm's OptimisingFarm::m_neighbours vecto...
Definition: farm.cpp:4657
int Get_lookup_table(int index)
Definition: farm.h:1879
TTypesOfCrops TranslateCropsCodes(string &str)
Definition: farm.cpp:4338
vector< double > m_cropTotals_other_sum
Stores the sums of crops areas on other farms within one simulation at the landscape level.
Definition: farm.h:1949
int GetFarmTotalSize(int a_farmref)
Returns the total farm area from the farm ref num.
Definition: farm.h:1728
int GetRandomFarmRefnum()
Returns a random farm reference number.
Definition: farm.h:1781
vector< double > m_cropTotals_cattle_sum
Stores the sums of crops areas on cattle farms within one simulation at the landscape level.
Definition: farm.h:1947
void CropDistribution()
Calculates total crop areas (at the landscape level). Includes results of the initial farm otpimisati...
Definition: farm.cpp:4588
vector< double > m_crops_fertilizer
Stores information on aggregate (all farms) fertilizer usage for each crop.
Definition: farm.h:1953
int GetFarmNoLookup(int a_ref)
Get a farm reference from the lookup table.
Definition: farm.h:1882
void Switch_rotation()
Switches OptimisingFarms Farm::m_rotation to the list of all possible rotational crops.
Definition: farm.cpp:4942
int FindClosestFarmOpennessProbNearRoostIsBest(HunterInfo a_hinfo, vector< int > *a_farmlist, int a_openness, vector< APoint > *a_farmsizelist)
Finds the closest farm to this co-ordinate with openness more than a value but uses a probability dis...
Definition: farm.cpp:3289
vector< double > m_cropTotals_plant_sum
Stores the sums of crops areas on plant farms within one simulation at the landscape level.
Definition: farm.h:1943
void ReadLivestockData()
Reads the data on livestock parameters (do not vary with farm variables) and saves them in a vector D...
Definition: farm.cpp:4212
int Get_cropTotals_size()
Definition: farm.h:1840
int GetRenumberedFarmRef(int a_farmref)
Returns the farm ref index for a farmref.
Definition: farm.h:1888
ofstream * pm_output_file
Definition: farm.h:1877
double totalOptFarmsArea_pig
Definition: farm.h:1932
Farm * GetFarmPtrIndex(int a_index)
Returns the pointer to a farm with a specific index.
Definition: farm.h:1777
int FindFarmWithRandom(vector< int > *a_farmlist)
Finds a farm openness more than a value not on the list.
Definition: farm.cpp:3353
void SetDD(double a_dd)
Definition: farm.h:1836
vector< double > m_crop_areas_stages
Stores information on crop areas calculated in different stages of model development: for comparison ...
Definition: farm.h:1957
void ReadFarmsData()
Reads farm level parameters and saves them in a vector DataForOptimisation::m_farm_data.
Definition: farm.cpp:3484
double Get_cropTotals(int i)
Definition: farm.h:1837
void PrintFinalResults()
At the end of a simulation it prints results on crop distribution, pesticide and fertilizer usage.
Definition: farm.cpp:4741
void SetSpilledGrain(bool a_spilledgrain)
Set m_SpilledGrain which is the flag for either 2013 (true) or 2014 (false) spilled grain distributio...
Definition: farm.h:1828
void ReadCropsData_almass()
Reads the data on crops' parameters that do not vary with farm variables and saves them in a vector D...
Definition: farm.cpp:3688
TTypesOfAnimals TranslateAnimalsCodes(string &str)
Definition: farm.cpp:4309
void DistributeFarmerTypes()
Randomly assigns farmer types to farms (OptimisingFarm) in proportions specified in an input file.
Definition: farm.cpp:4965
int GetFarmTypeLookup(int a_ref)
Get a farm type from the lookup table.
Definition: farm.h:1884
bool GetIsRenumbered()
Returns the flag for renumbering.
Definition: farm.h:1886
void ReadLivestockNumbers()
Reads the data on livestock numbers and saves them in a vector DataForOptimisation::m_livestockNumber...
Definition: farm.cpp:3530
void DumpFarmrefs()
dumps the farmrefs file to a standard named file
Definition: farm.cpp:2997
void RemoveField(int a_OwnerIndex, LE *a_field)
Definition: farm.cpp:2747
void PrintDecModes_counts()
For each OptimizingFarm it prints the number of times each of the decision modes was used within a si...
Definition: farm.cpp:4720
The base class for hunters encompsassing all their general behaviours.
Definition: Hunters_all.h:121
A data structure to hold hunter information for distribution.
Definition: farm.h:511
vector< int > FarmHuntRef
The hunter's is the farm reference number to where he hunts.
Definition: farm.h:520
~HunterInfo()
Definition: farm.h:524
int homeY
Hunter home y-coord.
Definition: farm.h:518
int refID
Unique reference number.
Definition: farm.h:514
vector< int > CheckedFarms
A list of farms that has been tested for duplicates.
Definition: farm.h:522
int homeX
Hunter home x-coord.
Definition: farm.h:516
Definition: elements.h:81
A class for storing livestock parameters and variables for optimising farms.
Definition: farm.h:1617
Livestock(TTypesOfAnimals a_animalType, int a_number)
Constructor.
Definition: farm.cpp:5094
TTypesOfAnimals m_animalType
Type of livestock.
Definition: farm.h:1622
int m_number
Number of animals of a given type at a farm.
Definition: farm.h:1624
double m_FUdemand
Amount of fodder needed for a given type of livestock. [fodder units].
Definition: farm.h:1628
double m_NanimUsable
Amount of usable animal fertilizer from a given type of livestock. [kg].
Definition: farm.h:1626
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: maperrormsg.cpp:59
Inbuilt special purpose farm type.
Definition: farm.h:1242
NoPesticideBaseFarm(FarmManager *a_manager)
Definition: farm.cpp:2148
Inbuilt special purpose farm type.
Definition: farm.h:1251
NoPesticideNoPFarm(FarmManager *a_manager)
Definition: farm.cpp:2193
Subclass of the OptimisingFarm. Either plant or other farm.
Definition: farm.h:2475
NonAnimalFarm(FarmManager *a_myfarmmanager, int a_No)
Definition: farm.cpp:5276
virtual void checkWinterCrops()
Checks if the restriction on a max. share of winter crops is fulfilled.
Definition: farm.cpp:6836
virtual void checkWinterRotation1()
Checks if the restriction on a winter rotation is fulfilled.
Definition: farm.cpp:6469
virtual ~NonAnimalFarm()
Definition: farm.h:2478
virtual void findFodderDemand()
Determines farm's total demand for fodder (m_totalFUdemand).
Definition: farm.cpp:5693
Subclass of the AnimalFarm.
Definition: farm.h:2448
virtual ~OptimisingCattleFarm()
Definition: farm.h:2451
void setCattleCropsAtMin()
Decreases area of cattle crops to their min. required area.
Definition: farm.cpp:7027
virtual void preventCashCrops()
Prevents small cattle farms from growing cash crops and maize silage.
Definition: farm.cpp:5704
OptimisingCattleFarm(FarmManager *a_myfarmmanager, int a_No)
Definition: farm.cpp:5284
vector< CropSort > m_cattleCrops_almass
Vector of crops used in checkCattleRotation_almass.
Definition: farm.h:2457
virtual void checkRestrictions()
Checks if the restrictions are fulfilled and corrects crops' areas if necessary.
Definition: farm.cpp:6442
vector< CropSort > m_cattleCrops
Vector of crops used in checkCattleRotation.
Definition: farm.h:2451
void checkCattleRotation_almass()
Checks if the cattle restriction is fulfilled - in the ALMaSS crops mode.
Definition: farm.cpp:7304
void checkCattleRotation()
Checks if the cattle restriction is fulfilled - in the Bedriftsmodel (original farm optimization mode...
Definition: farm.cpp:7053
A farm that carries out crop, pesticide and fertilizer planning using simplified optimisation or othe...
Definition: farm.h:2029
double m_actual_aggregated_yield
Actual aggregated yield at a farm in a given year.
Definition: farm.h:2131
vector< CropSort > m_variableCrops
Vector of structs containing pointers to crops which are not fixed.
Definition: farm.h:2185
vector< int > m_decision_mode_counters
Vector with counters for each decision mode. 0 - imitation, 1 - social comparison,...
Definition: farm.h:2114
double crop_parameter(int index, string par_name)
Reads in crop parameters that do NOT vary with any farm level parameters.
Definition: farm.cpp:7756
double m_totalArea_original
Total area of a farm as in bedriftsmodel, i.e. original farm optimization model. [ha].
Definition: farm.h:2226
void sortCrops(vector< CropSort > &cropsToSort, string sortingKey)
Sorts structs of type CropSort.
Definition: farm.cpp:7788
virtual bool InsecticideTreat(LE *a_field, double, int a_days)
Carries out insecticide application. Saves information on each application for a given crop.
Definition: farmfuncs.cpp:1389
void Save_last_years_crops()
It saves the OptimisingFarm::m_rotational_crops in a vector m_rotational_crops_visible which is acces...
Definition: farm.cpp:5472
vector< CropOptimised * > m_grownVariableCrops
Vector of pointers to variable crops that are grown on area larger than areaMin (after determineAreas...
Definition: farm.h:2192
double m_area_scaling_factor
Factor used to scale areas of fixed crops and livestock numbers. Used to adjust these values to the f...
Definition: farm.h:2228
void Set_Crop(CropOptimised *p_crop)
Definition: farm.h:2043
int GetFarmCentroidX()
Definition: farm.h:2055
vector< CropOptimised * > m_crops
Vector of pointers to all crops.
Definition: farm.h:2183
vector< double > m_previous_profits
Vector of profits from previous years.
Definition: farm.h:2137
int GetFarmCentroidY()
Definition: farm.h:2056
void ChooseDecisionMode()
Function determines which decision mode to use. The choice depends on the values of need satisfaction...
Definition: farm.cpp:5478
void findGrossMargin(CropOptimised *a_crop, int a_foobar, double benefit)
Determines the gross margin (CropOptimised::m_GM) for a given crop at a farm.
Definition: farm.cpp:6225
void Set_animals_no(int a_number)
Definition: farm.h:2059
virtual void increaseCrops(vector< CropSort >cropsToIncrease, double &howMuchToIncrease)
Increases area of crops by a specified number.
Definition: farm.cpp:7854
vector< AlmassCrop > m_rotational_crops_visible
Stores a copy of m_rotational_crops from a previous year and is accessible to farmers who want to cop...
Definition: farm.h:2206
double m_need_satisfaction_level
Farmer's actual satisfaction level.
Definition: farm.h:2110
double m_totalProfit
Planned total profit (= income - costs) at a farm. In case of animal farms costs of purchased fodder ...
Definition: farm.h:2264
virtual bool FungicideTreat(LE *a_field, double, int a_days)
Carries out fungicide application. Saves information on each application for a given crop.
Definition: farmfuncs.cpp:1307
double m_totalBIFi
Total amount of fung- and insecticides which is planned to be applied at a farm. Expressed as a Treat...
Definition: farm.h:2250
int Get_cropsSize(void)
Definition: farm.h:2041
double m_area_rot
Area assigned to rotational crops. [ha].
Definition: farm.h:2266
double m_actual_profit
An actual profit realised at a farm in a given year.
Definition: farm.h:2118
void sumMinAreas()
Adds minimum required areas of variable crops to the variable m_assigned.
Definition: farm.cpp:6294
void Make_rotational_crops()
Creates a vector m_rotational_crops using the results of optimisation.
Definition: farm.cpp:8285
double m_totalN
Total amount of fertilizer used at a farm. [kg].
Definition: farm.h:2244
double m_actual_income
An actual income at a farm in a given year.
Definition: farm.h:2122
virtual bool Spraying_herbicides(TTypesOfVegetation a_tov_type)
Returns true if a farmer decided to treat a given crop with herbicides.
Definition: farm.cpp:5348
void findFertilizer(CropOptimised *a_crop, int a_foobar, double benefit)
Determines the optimal amounts of: total fertilizer (CropOptimised::m_n) and purchased fertilizer (Cr...
Definition: farm.cpp:5906
double m_totalFUgrown
Fodder grown, i.e. obtained from growing fodder crops. [fodder units].
Definition: farm.h:2240
double m_exp_costs
Expected costs at a farm in a given year.
Definition: farm.h:2128
void OptimiseFarm(int a_foobar)
Carries out the whole farm optimisation.
Definition: farm.cpp:5765
int Get_soilSubType(void)
Definition: farm.h:2038
void findBIs(CropOptimised *a_crop, double benefit)
Determines the optimal Treatment frequency indices (behandling index, BI in Danish) (CropOptimised::m...
Definition: farm.cpp:6047
double m_totalHoeing
Total hoeing planned at a farm.
Definition: farm.h:2256
TTypesOfOptFarms m_farmType
Farm's type (cattle, pig, plant, other).
Definition: farm.h:2210
int m_almass_no
Farm's almass number.
Definition: farm.h:2220
bool Harvest(LE *a_field, double a_user, int a_days)
OptimisingFarm's virtual version of Farm::Harvest(). Saves information on biomass of a crop at harves...
Definition: farmfuncs.cpp:1859
void fixBI()
Sets values of Treatment frequency indices (BI) for crops with fixed amount of pesticides (CropOptimi...
Definition: farm.cpp:6123
TTypeOfFarmerGoal m_main_goal
Farmer's main goal (determined by a farmer's type) .
Definition: farm.h:2103
vector< AlmassCrop > Get_rotational_crops_visible()
Definition: farm.h:2052
void Make_rotations()
Creates m_rotation. Not used in ALMaSS crop mode.
Definition: farm.cpp:8403
virtual void determineAreas(int a_foobar)
Determines areas of variable crops.
Definition: farm.cpp:6304
void findTotalNanim()
Determines total animal fertilizer (m_totalNanim) available at a farm.
Definition: farm.cpp:5643
OptimisingFarm * Find_neighbour_to_imitate()
Picks randomly a farmer to imitate/compare with. It chooses among neighbouring farmers with similar f...
Definition: farm.cpp:5380
vector< CropSort > m_winterCrops
Vector of structs containing pointers to winter crops.
Definition: farm.h:2198
double m_totalFUdemand
Farm's total demand for fodder (it is covered by growing fodder crops and/or purchasing fodder and th...
Definition: farm.h:2236
virtual void findFodderDemand()
Determines farm's total demand for fodder (m_totalFUdemand).
Definition: farm.cpp:5670
void findYieldLoss(CropOptimised *a_crop)
Determines the yield losses (CropOptimised::m_lossHerb, CropOptimised::m_lossFi, CropOptimised::m_tot...
Definition: farm.cpp:6200
int Get_farmRealID(void)
Definition: farm.h:2037
void Check_if_area_100()
Checks if the sum of crops' areaPercent is 100%.
Definition: farm.cpp:8060
void assignFixed()
Adds areas of fixed crops to the variable m_assigned. For each fixed crop it saves its area under var...
Definition: farm.cpp:6275
void Print_rotations(ofstream *ap_output_file)
Prints the content of a farm's m_rotation. Not used in ALMaSS crop mode.
Definition: farm.cpp:8389
double m_exp_profit
An expected farm's profit for a given year.
Definition: farm.h:2120
vector< double > m_previous_aggregated_yields
Vector of aggregated yields from previous years.
Definition: farm.h:2143
virtual void HandleEvents(void)
If there are events to carry out do this, and perhaps start a new crop.
Definition: farm.cpp:952
virtual void checkRestrictions()
Checks if the restrictions are fulfilled and corrects crops' areas if necessary.
Definition: farm.cpp:6410
void Match_crop_to_field(LE *a_field)
Finds a crop to be grown on a given field next year.
Definition: farm.cpp:9161
double m_exp_income
An expected farm's income at a farm in a given year.
Definition: farm.h:2124
vector< double > m_animals_numbers
Vector for storing numbers of animals at a farm in previous years (3).
Definition: farm.h:2150
virtual bool HerbicideTreat(LE *a_field, double, int a_days)
Carries out herbicide application. Saves information on each application for a given crop.
Definition: farmfuncs.cpp:1196
void createVariableCrops(int a_foobar)
Creates a list of pointers to all variable crops included in the optimisation and a list of pointers ...
Definition: farm.cpp:5579
void FarmLevelCalculation()
Calls functions determining farm level values before the initial optimisation.
Definition: farm.cpp:5613
void Set_main_goal(TTypeOfFarmerGoal a_goal)
Definition: farm.h:2057
CropOptimised * findCropByName_almass(string crop_name)
Returns a pointer to almass crop whose name is specified as the argument (ALMaSS crops mode).
Definition: farm.cpp:7770
vector< Livestock * > m_livestock
Vector of pointers to animals belonging to a farm.
Definition: farm.h:2181
void Translate_crops_to_almass()
Translates crops from Bedriftsmodel (original farm optimization model) to Almass crops....
Definition: farm.cpp:8075
virtual bool Spraying_fungins(TTypesOfVegetation a_tov_type)
Returns true if a farmer decided to treat a given crop with fung- and insecticides.
Definition: farm.cpp:5360
virtual void decreaseCrops(vector< CropSort >cropsToDecrease, double &howMuchToDecrease)
Decreases area of a crops by a specified number.
Definition: farm.cpp:7912
void findTotalArea()
Determines m_totalArea of a farm.
Definition: farm.cpp:5624
double m_actual_costs
Actual costs at a farm in a given year.
Definition: farm.h:2126
virtual void checkWinterRotation1()
Checks if the restriction on a winter rotation is fulfilled.
Definition: farm.h:2330
virtual ~OptimisingFarm()
Definition: farm.h:2033
int m_farmRealID
Farm's real ID number.
Definition: farm.h:2216
double m_exp_aggregated_yield
Expected aggregated yield at a farm in a given year.
Definition: farm.h:2134
void Print_FarmVariables(ofstream *ap_output_file)
Prints farm-level variables to a text file (one file for all farms).
Definition: farm.cpp:8045
double m_totalBI
Total amount of pesticides (sum of m_totalBIHerb and m_totalBIFi) which is planned to be applied at a...
Definition: farm.h:2252
double m_totalFUdemandBefore
Farm's total demand for fodder. [fodder units]
Definition: farm.h:2234
void findResponse(CropOptimised *a_crop, int a_foobar)
Determines the response (CropOptimised::m_resp) of a crop at a farm.
Definition: farm.cpp:6031
double m_totalArea
Total area of a farm. A sum of initial crop areas (if in bedriftsmodel, i.e. original farm optimizati...
Definition: farm.h:2224
OptimisingFarm * Get_Neighbour(int i)
Definition: farm.h:2050
vector< double > m_previous_satisfaction_levels
Vector of satisfaction levels in five previous years.
Definition: farm.h:2145
vector< AlmassCrop > Get_rotational_crops()
Definition: farm.h:2051
TTypesOfSoils m_soilType
Farm's soil type (sandy, clay, other).
Definition: farm.h:2212
vector< double > m_previous_incomes
Vector of incomes from previous years.
Definition: farm.h:2139
virtual void preventCashCrops()
Prevents small cattle farms from growing cash crops and maize silage.
Definition: farm.h:2293
virtual double Prob_multiplier()
Used when determining whether there should be a spraying event (i.e. pesticides application) or not....
Definition: farm.cpp:5372
int Get_almass_no(void)
Definition: farm.h:2039
void optimizeCrops(int a_foobar)
Carries out crop optimisation at a farm.
Definition: farm.cpp:5796
vector< AlmassCrop > m_rotational_crops
Vector of structs with almass type crops with positive areas in % (result of optimisation): includes ...
Definition: farm.h:2202
virtual void createCropsLists(int a_foobar)
Creates lists of crops.
Definition: farm.cpp:5570
int animals_no
Holds the number of animals in a farm at a particular day in a year (depends on a species).
Definition: farm.h:2154
double Get_actual_aggregated_yield()
Definition: farm.h:2054
void ActualProfit()
Function that determines actual crop yields and profit in a given year.
Definition: farm.cpp:8806
void randomizeCropList(vector< CropSort > &listToRandomize, string key)
Swaps randomly elements of the list holding same values of the key (according to which the list was p...
Definition: farm.cpp:7811
TTypesOfSoils Get_soilType(void)
Definition: farm.h:2035
void Make_almass_crops_vector()
Creates a vector storing crops with positive area. Used in ALMaSS crop mode.
Definition: farm.cpp:8269
void determineAreas_ha(vector< CropOptimised * >crops)
Determines areas of crops in ha.
Definition: farm.cpp:7967
double m_totalNt
Total amount of fertilizer purchased at a farm. [kg].
Definition: farm.h:2246
vector< double > m_previous_costs
Vector of costs from previous years.
Definition: farm.h:2141
vector< CropSort > m_rotationCrops
Vector of structs containing pointers to (winter) rotation crops.
Definition: farm.h:2196
int Get_decision_mode_counters(int index)
Definition: farm.h:2060
double m_totalGrooming
Total grooming planned at a farm.
Definition: farm.h:2254
double m_totalFUt
Fodder from trade (has to be purchased). [fodder units].
Definition: farm.h:2238
vector< CropSort > m_variableCrops2
Vector of structs containing pointers to crops which are not fixed and: in case of the winter rotatio...
Definition: farm.h:2190
void setRotationCropsAtMax()
Increases area of winter rotation crops to their max. allowed area.
double m_totalBIHerb
Total amount of herbicides which is planned to be applied at a farm. Expressed as a Treatment frequen...
Definition: farm.h:2248
int m_soilSubType
Farm's soil subtype. Defined only for cattle farms on sandy soil (0-bad, 1-good, 2-undefined).
Definition: farm.h:2218
virtual void InitiateManagement(void)
Kicks off the farm's management.
Definition: farm.cpp:5124
void Init(ofstream *ap_output_file)
Function carrying out the initial calculations at a farm level (including the initial optimisation).
Definition: farm.cpp:5294
vector< AlmassCrop > m_rotational_crops_copy
A copy of m_rotational_crops used when matching crops to fields.
Definition: farm.h:2204
double total(TTypesOfCropVariables variable_name)
Function for determining total values per farm after initial optimisation.
Definition: farm.cpp:7977
TTypesOfOptFarms Get_farmType(void)
Definition: farm.h:2034
double m_certainty_level
Farmer's certainty level.
Definition: farm.h:2112
TTypesOfFarmSize m_farmSize
Scale of the farm - business (size above 10 ha) or private (size below 10 ha).
Definition: farm.h:2214
void Set_Livestock(Livestock *p_lvs)
Definition: farm.h:2042
double m_Nanim
Amount of animal fertilizer available at a farm per hectar. [kg/ha].
Definition: farm.h:2232
OptimisingFarm * m_previously_imitated_neighbour
The neighbouring farmer whose crops might be copied in imitation and social comparison decision modes...
Definition: farm.h:2147
void Set_Neighbour(OptimisingFarm *farm)
Definition: farm.h:2048
void findNanim()
Determines amount of animal fertilizer per ha (m_Nanim) at a farm.
Definition: farm.cpp:5665
double m_totalCosts
Planned total costs of growing crops at a farm. [DKK].
Definition: farm.h:2260
bool force_deliberation
If set to true, a farm must use deliberation as a decision strategy.
Definition: farm.h:2152
void findMWeedControl(CropOptimised *a_crop)
Determines the optimal mechanical weed control means (CropOptimised::m_grooming, CropOptimised::m_hoe...
Definition: farm.cpp:6153
CropOptimised * Get_crop(int i)
Definition: farm.h:2040
TTypeOfFarmerGoal Get_main_goal()
Definition: farm.h:2058
int Get_NeighboursSize(void)
Definition: farm.h:2049
TTypesOfFarmSize Get_farmSize(void)
Definition: farm.h:2036
void Initialize(FarmManager *a_pfm)
Assigns to each farm its farm type, farm size, farm's real ID number, and soil type....
Definition: farm.cpp:5187
double m_assigned
Variable holding a value of area already reserved for certain crops at a farm. [0-100%].
Definition: farm.h:2242
double m_totalIncome
Planned total income from growing crops at a farm. [DKK].
Definition: farm.h:2262
OptimisingFarm(FarmManager *a_myfarmmanager, int a_No)
The constructor.
Definition: farm.cpp:5153
CropOptimised * findCropByName(string crop_name)
Returns a pointer to a crop whose name is specified as the argument (bedriftsmodel,...
Definition: farm.cpp:7762
vector< CropOptimised * > m_fixedCrops
Vector of pointers to fixed crops.
Definition: farm.h:2194
double m_totalNanim
Total animal fertilizer at a farm. A sum of Livestock::m_NanimUsable (from all types of livestock)....
Definition: farm.h:2230
double m_totalWeeding
Total manual weeding planned at a farm.
Definition: farm.h:2258
virtual void checkWinterCrops()
Checks if the restriction on a max. share of winter crops is fulfilled.
Definition: farm.h:2332
double Get_actual_profit()
Definition: farm.h:2053
vector< OptimisingFarm * > m_neighbours
Vector of pointers to the farms considered neighbours (fulfilling the neighbourship condition) of a g...
Definition: farm.h:2108
void Check_SG_and_CGG()
Modifies areas of SeedGrass1 and SeedGrass2, CloverGrassGrazed1 and CloverGrassGrazed2 to be even....
Definition: farm.cpp:5877
vector< AlmassCrop > m_crops_almass
Vector of structs with almass type crops with positive areas in % (result of optimisation).
Definition: farm.h:2200
Subclass of the NonAnimalFarm.
Definition: farm.h:2504
OptimisingOtherFarm(FarmManager *a_myfarmmanager, int a_No)
Definition: farm.cpp:5291
virtual ~OptimisingOtherFarm()
Definition: farm.h:2507
Subclass of the AnimalFarm.
Definition: farm.h:2433
void check_WRape_WBarley()
Checks if the restriction on winter rape and winter barley attachment is fulfilled and corrects crops...
Definition: farm.cpp:7380
OptimisingPigFarm(FarmManager *a_myfarmmanager, int a_No)
Definition: farm.cpp:5280
virtual void checkRestrictions()
Checks if the restrictions are fulfilled and corrects crops' areas if necessary.
Definition: farm.cpp:6457
virtual ~OptimisingPigFarm()
Definition: farm.h:2436
Subclass of the NonAnimalFarm.
Definition: farm.h:2495
virtual ~OptimisingPlantFarm()
Definition: farm.h:2498
OptimisingPlantFarm(FarmManager *a_myfarmmanager, int a_No)
Definition: farm.cpp:5287
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1161
OrganicCattle(FarmManager *a_manager)
Definition: farm.cpp:2038
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1149
OrganicPig(FarmManager *a_manager)
Definition: farm.cpp:2045
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1136
virtual void MakeStockFarmer(void)
Definition: farm.h:1139
OrganicPlant(FarmManager *a_manager)
Definition: farm.cpp:2052
Inbuilt special purpose farm type.
Definition: farm.h:1173
virtual void MakeStockFarmer(void)
Definition: farm.h:1176
PesticideTrialControl(FarmManager *a_manager)
Definition: farm.cpp:2059
Inbuilt special purpose farm type.
Definition: farm.h:1183
PesticideTrialToxicControl(FarmManager *a_manager)
Definition: farm.cpp:2067
virtual void MakeStockFarmer(void)
Definition: farm.h:1186
Inbuilt special purpose farm type.
Definition: farm.h:1193
virtual void MakeStockFarmer(void)
Definition: farm.h:1196
PesticideTrialTreatment(FarmManager *a_manager)
Definition: farm.cpp:2075
Base class for all population managers.
Definition: PopulationManager.h:424
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1360
UserDefinedFarm10(FarmManager *a_manager)
Definition: farm.cpp:2292
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1369
UserDefinedFarm11(FarmManager *a_manager)
Definition: farm.cpp:2299
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1378
UserDefinedFarm12(FarmManager *a_manager)
Definition: farm.cpp:2306
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1387
UserDefinedFarm13(FarmManager *a_manager)
Definition: farm.cpp:2313
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1396
UserDefinedFarm14(FarmManager *a_manager)
Definition: farm.cpp:2320
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1405
UserDefinedFarm15(FarmManager *a_manager)
Definition: farm.cpp:2327
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1414
UserDefinedFarm16(FarmManager *a_manager)
Definition: farm.cpp:2334
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1423
UserDefinedFarm17(FarmManager *a_manager)
Definition: farm.cpp:2342
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1432
UserDefinedFarm18(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2531
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1442
UserDefinedFarm19(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2536
UserDefinedFarm1(FarmManager *a_manager)
Definition: farm.cpp:2220
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1452
UserDefinedFarm20(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2541
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1462
UserDefinedFarm21(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2546
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1472
UserDefinedFarm22(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2551
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1482
UserDefinedFarm23(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2556
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1492
UserDefinedFarm24(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2561
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1502
UserDefinedFarm25(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2566
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1512
UserDefinedFarm26(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2571
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1522
UserDefinedFarm27(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2576
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1532
UserDefinedFarm28(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2581
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1542
UserDefinedFarm29(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2586
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1288
UserDefinedFarm2(FarmManager *a_manager)
Definition: farm.cpp:2228
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1552
UserDefinedFarm30(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2591
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1562
UserDefinedFarm31(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2596
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1572
UserDefinedFarm32(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2601
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1582
UserDefinedFarm33(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2606
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1592
UserDefinedFarm34(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2611
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1602
UserDefinedFarm35(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2616
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1297
UserDefinedFarm3(FarmManager *a_manager)
Definition: farm.cpp:2236
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1306
UserDefinedFarm4(FarmManager *a_manager)
Definition: farm.cpp:2244
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1315
UserDefinedFarm5(FarmManager *a_manager)
Definition: farm.cpp:2252
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1324
UserDefinedFarm6(FarmManager *a_manager)
Definition: farm.cpp:2260
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1333
UserDefinedFarm7(FarmManager *a_manager)
Definition: farm.cpp:2268
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1342
UserDefinedFarm8(FarmManager *a_manager)
Definition: farm.cpp:2276
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1351
UserDefinedFarm9(FarmManager *a_manager)
Definition: farm.cpp:2284
A farm that can have its rotation defined by the user at runtime.
Definition: farm.h:1268
UserDefinedFarm(const char *fname, FarmManager *a_manager)
Definition: farm.cpp:2349
virtual void InitiateManagement(void)
Kicks off the farm's management.
Definition: farm.cpp:1499
TTypeOfFarmerGoal
Definition: farm.h:435
@ tofg_profit
Definition: farm.h:436
@ tofg_environment
Definition: farm.h:438
@ tofg_Foobar
Definition: farm.h:439
@ tofg_yield
Definition: farm.h:437
PlantProtectionProducts
A list PPP names for tracking by the Pesticide class.
Definition: farm.h:421
@ ppp_6
Definition: farm.h:427
@ ppp_foobar
Definition: farm.h:432
@ ppp_10
Definition: farm.h:431
@ ppp_3
Definition: farm.h:424
@ ppp_7
Definition: farm.h:428
@ ppp_1
Definition: farm.h:422
@ ppp_8
Definition: farm.h:429
@ ppp_4
Definition: farm.h:425
@ ppp_9
Definition: farm.h:430
@ ppp_5
Definition: farm.h:426
@ ppp_2
Definition: farm.h:423
TTypesOfParameters
Definition: farm.h:371
@ top_Foobar
Definition: farm.h:389
@ top_BetaW
Definition: farm.h:388
@ top_PriceW
Definition: farm.h:378
@ top_AlfaW
Definition: farm.h:387
@ top_BetaG
Definition: farm.h:384
@ top_PriceFi
Definition: farm.h:375
@ top_AlfaG
Definition: farm.h:383
@ top_PriceHerb
Definition: farm.h:374
@ top_PriceLM
Definition: farm.h:373
@ top_AlfaFi
Definition: farm.h:381
@ top_AlfaHerb
Definition: farm.h:379
@ top_Subsidy
Definition: farm.h:372
@ top_BetaHerb
Definition: farm.h:380
@ top_PriceH
Definition: farm.h:377
@ top_BetaFi
Definition: farm.h:382
@ top_AlfaH
Definition: farm.h:385
@ top_PriceG
Definition: farm.h:376
@ top_BetaH
Definition: farm.h:386
TTypesOfCrops
Definition: farm.h:323
@ toc_PerGrassLow
Definition: farm.h:347
@ toc_GrassRot
Definition: farm.h:351
@ toc_OSCrops
Definition: farm.h:326
@ toc_CloverGrz
Definition: farm.h:357
@ toc_Oats
Definition: farm.h:325
@ toc_FruitTree
Definition: farm.h:360
@ toc_PerGrassNorm
Definition: farm.h:348
@ toc_OOilseed
Definition: farm.h:333
@ toc_SCerealG
Definition: farm.h:346
@ toc_WRye
Definition: farm.h:329
@ toc_Foobar
Definition: farm.h:367
@ toc_SCerealSil
Definition: farm.h:342
@ toc_ChrisTree
Definition: farm.h:362
@ toc_FodderBeet
Definition: farm.h:355
@ toc_Setaside
Definition: farm.h:352
@ toc_EnergyFor
Definition: farm.h:363
@ toc_PotatoFood
Definition: farm.h:338
@ toc_Triticale
Definition: farm.h:330
@ toc_WWheat
Definition: farm.h:328
@ toc_SugarBeet
Definition: farm.h:339
@ toc_Other
Definition: farm.h:366
@ toc_SBarley
Definition: farm.h:324
@ toc_OUncult
Definition: farm.h:354
@ toc_PeasSil
Definition: farm.h:343
@ toc_GrassSeed
Definition: farm.h:336
@ toc_WRape
Definition: farm.h:332
@ toc_SpringRape
Definition: farm.h:365
@ toc_SRape
Definition: farm.h:331
@ toc_GrassClover
Definition: farm.h:340
@ toc_GrassEnv2
Definition: farm.h:350
@ toc_OSpecCrops
Definition: farm.h:361
@ toc_WCerealSil
Definition: farm.h:345
@ toc_WBarley
Definition: farm.h:327
@ toc_OFodderBeet
Definition: farm.h:356
@ toc_Potato
Definition: farm.h:337
@ toc_OTriticale
Definition: farm.h:364
@ toc_Peas
Definition: farm.h:334
@ toc_OLSeedCut
Definition: farm.h:341
@ toc_Fruit
Definition: farm.h:359
@ toc_Veg
Definition: farm.h:358
@ toc_OLSeed
Definition: farm.h:335
@ toc_Uncult
Definition: farm.h:353
@ toc_GrassEnv1
Definition: farm.h:349
@ toc_MaizeSil
Definition: farm.h:344
TTypesOfOptFarms
Definition: farm.h:278
@ toof_Other
Definition: farm.h:279
@ toof_Cattle
Definition: farm.h:280
@ toof_Foobar
Definition: farm.h:283
@ toof_Plant
Definition: farm.h:281
@ toof_Pig
Definition: farm.h:282
TTypesOfCropVariables
Definition: farm.h:399
@ tocv_TotalLoss
Definition: farm.h:410
@ tocv_BI
Definition: farm.h:406
@ tocv_AreaPercent
Definition: farm.h:400
@ tocv_Income
Definition: farm.h:412
@ tocv_Hoeing
Definition: farm.h:408
@ tocv_Nt
Definition: farm.h:403
@ tocv_Grooming
Definition: farm.h:407
@ tocv_BIFi
Definition: farm.h:405
@ tocv_GM
Definition: farm.h:414
@ tocv_Costs
Definition: farm.h:413
@ tocv_N
Definition: farm.h:402
@ tocv_Savings
Definition: farm.h:415
@ tocv_Foobar
Definition: farm.h:416
@ tocv_BIHerb
Definition: farm.h:404
@ tocv_Weeding
Definition: farm.h:409
@ tocv_AreaHa
Definition: farm.h:401
@ tocv_Response
Definition: farm.h:411
TTypesOfLivestockParameters
Definition: farm.h:392
@ tolp_Foobar
Definition: farm.h:396
@ tolp_FUuKey
Definition: farm.h:395
@ tolp_Nusable
Definition: farm.h:394
@ tolp_AUKey
Definition: farm.h:393
TTypesOfFarmSize
Definition: farm.h:293
@ tofs_Business
Definition: farm.h:294
@ tofs_Foobar
Definition: farm.h:296
@ tofs_Private
Definition: farm.h:295
TTypesOfFarm
Definition: farm.h:222
@ tof_NoPesticideNoP
Definition: farm.h:237
@ tof_UserDefinedFarm19
Definition: farm.h:256
@ tof_OptimisingFarm
Definition: farm.h:273
@ tof_UserDefinedFarm2
Definition: farm.h:239
@ tof_AgroChemIndustryCerealFarm1
Definition: farm.h:233
@ tof_UserDefinedFarm5
Definition: farm.h:242
@ tof_OrganicPig
Definition: farm.h:227
@ tof_UserDefinedFarm34
Definition: farm.h:271
@ tof_PTrialControl
Definition: farm.h:229
@ tof_ConventionalPig
Definition: farm.h:224
@ tof_UserDefinedFarm33
Definition: farm.h:270
@ tof_ConvMarginalJord
Definition: farm.h:232
@ tof_UserDefinedFarm27
Definition: farm.h:264
@ tof_PTrialTreatment
Definition: farm.h:230
@ tof_PTrialToxicControl
Definition: farm.h:231
@ tof_ConventionalCattle
Definition: farm.h:223
@ tof_UserDefinedFarm9
Definition: farm.h:246
@ tof_UserDefinedFarm32
Definition: farm.h:269
@ tof_UserDefinedFarm13
Definition: farm.h:250
@ tof_UserDefinedFarm29
Definition: farm.h:266
@ tof_UserDefinedFarm17
Definition: farm.h:254
@ tof_UserDefinedFarm11
Definition: farm.h:248
@ tof_UserDefinedFarm7
Definition: farm.h:244
@ tof_UserDefinedFarm26
Definition: farm.h:263
@ tof_UserDefinedFarm30
Definition: farm.h:267
@ tof_UserDefinedFarm18
Definition: farm.h:255
@ tof_UserDefinedFarm24
Definition: farm.h:261
@ tof_UserDefinedFarm3
Definition: farm.h:240
@ tof_UserDefinedFarm15
Definition: farm.h:252
@ tof_AgroChemIndustryCerealFarm3
Definition: farm.h:235
@ tof_UserDefinedFarm31
Definition: farm.h:268
@ tof_UserDefinedFarm35
Definition: farm.h:272
@ tof_UserDefinedFarm20
Definition: farm.h:257
@ tof_NoPesticideBase
Definition: farm.h:236
@ tof_UserDefinedFarm6
Definition: farm.h:243
@ tof_UserDefinedFarm10
Definition: farm.h:247
@ tof_OrganicPlant
Definition: farm.h:228
@ tof_UserDefinedFarm16
Definition: farm.h:253
@ tof_UserDefinedFarm8
Definition: farm.h:245
@ tof_UserDefinedFarm12
Definition: farm.h:249
@ tof_UserDefinedFarm25
Definition: farm.h:262
@ tof_OrganicCattle
Definition: farm.h:226
@ tof_UserDefinedFarm23
Definition: farm.h:260
@ tof_UserDefinedFarm21
Definition: farm.h:258
@ tof_UserDefinedFarm28
Definition: farm.h:265
@ tof_ConventionalPlant
Definition: farm.h:225
@ tof_UserDefinedFarm4
Definition: farm.h:241
@ tof_UserDefinedFarm1
Definition: farm.h:238
@ tof_UserDefinedFarm22
Definition: farm.h:259
@ tof_AgroChemIndustryCerealFarm2
Definition: farm.h:234
@ tof_UserDefinedFarm14
Definition: farm.h:251
TTypesOfSoils
Definition: farm.h:286
@ tos_Foobar
Definition: farm.h:290
@ tos_Clay
Definition: farm.h:289
@ tos_Other
Definition: farm.h:288
@ tos_Sand
Definition: farm.h:287
vector< Hunter * > HunterList
Definition: farm.h:211
TTypeCropClassification
Definition: farm.h:213
@ tocc_Foobar
Definition: farm.h:217
@ tocc_Winter
Definition: farm.h:214
@ tocc_Spring
Definition: farm.h:215
@ tocc_Catch
Definition: farm.h:216
TTypesOfAnimals
Definition: farm.h:299
@ toa_Mink
Definition: farm.h:312
@ toa_DCow
Definition: farm.h:301
@ toa_MDuck
Definition: farm.h:318
@ toa_Deer
Definition: farm.h:311
@ toa_DCalf
Definition: farm.h:303
@ toa_Duck
Definition: farm.h:317
@ toa_MCattle
Definition: farm.h:305
@ toa_Turkey
Definition: farm.h:315
@ toa_So
Definition: farm.h:308
@ toa_Finisher
Definition: farm.h:309
@ toa_Piglet
Definition: farm.h:310
@ toa_MCalf
Definition: farm.h:304
@ toa_Foobar
Definition: farm.h:320
@ toa_Suckler
Definition: farm.h:302
@ toa_MHen
Definition: farm.h:314
@ toa_Goose
Definition: farm.h:316
@ toa_Sheep
Definition: farm.h:306
@ toa_Horse
Definition: farm.h:300
@ toa_EHen
Definition: farm.h:313
@ toa_Ostrich
Definition: farm.h:319
@ toa_Goat
Definition: farm.h:307
vector< unsigned > polylist
Definition: farm.h:207
class MapErrorMsg * g_msg
This pointer provides access the to the internal ALMaSS error message system.
Definition: maperrormsg.cpp:41
Struct for storing ALMaSS crop type (TTypesOfVegetation) with a corresponding value (mainly crop area...
Definition: farm.h:580
double Number
Definition: farm.h:581
TTypesOfVegetation Tov
Definition: farm.h:582
A struct to hold the information required to trigger a farm event.
Definition: farm.h:464
TTypesOfVegetation m_event
Definition: farm.h:470
FarmEvent(TTypesOfVegetation a_event, LE *a_field, int a_todo, long a_run, bool a_lock, int a_start, bool a_first_year, TTypesOfVegetation a_nextcrop)
Definition: farm.h:474
bool m_lock
Definition: farm.h:465
LE * m_field
Definition: farm.h:472
bool m_first_year
Definition: farm.h:467
int m_todo
Definition: farm.h:469
int m_startday
Definition: farm.h:466
long m_run
Definition: farm.h:468
TTypesOfVegetation m_next_tov
Definition: farm.h:471
Struct used for storing data on pesticide usage throughout the whole simulation (one instance,...
Definition: farm.h:1923
TTypesOfVegetation Tov
Definition: farm.h:1924
double BI
Definition: farm.h:1927
double BIherb
Definition: farm.h:1925
double BIfi
Definition: farm.h:1926
Struct used for sorting crops.
Definition: farm.h:2161
CropOptimised * crop
Definition: farm.h:2163
double key
Definition: farm.h:2162
Struct used only in Bedriftsmodel crop type mode for creating m_rotation vector. Bool member used for...
Definition: farm.h:2173
TTypesOfVegetation Tov
Definition: farm.h:2175
bool taken
Definition: farm.h:2174
Struct redefining operator < - used for sorting crops.
Definition: farm.h:2167
bool operator()(CropSort a, CropSort b)
Definition: farm.h:2168
Used for storing permanent crop data for the farm rotation.
Definition: farm.h:448
TTypesOfVegetation Tov
Definition: farm.h:449
int Pct
Definition: farm.h:450
Used during saving farm/hunter information.
Definition: farm.h:493
int m_farmref
Definition: farm.h:494
int m_farmtype
Definition: farm.h:495
int m_areaopenfields
Definition: farm.h:500
int m_farmarable
Definition: farm.h:497
int m_openfields
Definition: farm.h:499
int m_nofields
Definition: farm.h:498
int m_NoHunters
Definition: farm.h:503
APoint m_farmvalid
Definition: farm.h:502
int m_farmsize
Definition: farm.h:496
APoint m_farmcentroid
Definition: farm.h:501
bool m_present
Definition: farm.h:444
double m_amounts[ppp_foobar]
Definition: farm.h:443
Used for storing farmers field size vectors.
Definition: farm.h:454
int pct
Definition: farm.h:456
int index
Definition: farm.h:455
TTypesOfLandscapeElement
Definition: tole_declaration.h:36
TTypesOfVegetation
Definition: tov_declaration.h:30